Flutter 学习(七)Flutter集成极光推送

时间:2024-05-20 16:39:55

Flutter集成极光推送

目前众多推送厂家只有极光支持了flutter,支持一下!!!
废话不多说,开始撸代码

第一步

因为设备的原因目前只在安卓上测试成功,就先分享安卓的配置过程,首先在极光官网创建应用,完成之后在 android/app/build.gradle文件下添加配置:

android {
    .... 你的代码

    defaultConfig {
        .....
        manifestPlaceholders = [
               JPUSH_PKGNAME : applicationId,
               JPUSH_APPKEY : "你的极光推送key", //JPush上注册的包名对应的appkey.
               JPUSH_CHANNEL : "你的推送渠道,如果不知道填写developer-default即可",
        ]

    }
第二步

老规矩,添加依赖

dependencies:
  flutter:
    sdk: flutter
    flutter_jpush: ^0.0.4
第三步

导包
Flutter 学习(七)Flutter集成极光推送

import 'package:flutter_jpush/flutter_jpush.dart';
第四步

在程序入口初始化Jpush,也就是在 main页面初始化的时候添加:
Flutter 学习(七)Flutter集成极光推送

void _startupJpush() async {
    print("初始化jpush");
    await FlutterJPush.startup();
    print("初始化jpush成功");
  }
第五步

在没有后台的情况下,可以在官网进行在线测试,
Flutter 学习(七)Flutter集成极光推送
点击发送手机就可以收到消息啦!!!

注意

如果真机运行报错:couldn’t find “libflutter.so
android/app/build.gradle添加配置:

ndk{
     abiFilters 'armeabi', 'armeabi-v7a'//, 'arm64-v8a'
}

或者可以增加编译选项:

--target-platform android-arm64 或者 --target-platform android-arm

如果运行没有报错,则不用添加;添加之后会启动不起来!!!

接下来有几个扩展方法一并介绍一下:

收到推送提醒

监听addReceiveNotificationListener方法:

/*
* 收到推送提醒
* */
  void _ReceiveNotification() async {
    FlutterJPush.addReceiveNotificationListener(
        (JPushNotification notification) {
      setState(() {
        /// 收到推送
        print("收到推送提醒: $notification");
      });
    });
  }
打开推送提醒

监听 addReceiveNotificationListener方法:

 /*
  * 打开推送提醒
  * */

  void _OpenNotification() async {
    FlutterJPush.addReceiveOpenNotificationListener(
        (JPushNotification notification) {
      setState(() {
        print("打开了推送提醒: $notification");
      });
    });
  }
监听接收自定义消息

一般项目这个方法会用的比较多吧!!!

监听 addReceiveCustomMsgListener方法:

  /*
  * 监听接收自定义消息
  * */

  void _ReceiveCustomMsg() async {
    FlutterJPush.addReceiveCustomMsgListener((JPushMessage msg) {
      setState(() {
        print("收到推送消息提醒: $msg");
      });
    });
  }

其他方法很少用到,就不再赘述了;