flutter整合极光推送完美版

这篇博文讲的是flutter整合极光推送,也就是jpush,看完包你会。

一、加入极光配置

1.pubspec.yaml

jpush_flutter: ^2.0.5 # 极光推送

2.flutter-app

defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "你的applicationId"
        minSdkVersion 20
        targetSdkVersion 28
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        multiDexEnabled true            //允许第三方包  flutter (# methods: 75110 > 65536)
        ndk {
            abiFilters 'armeabi', 'armeabi-v7a', 'x86', 'x86_64', 'mips', 'mips64', 'arm64-v8a'
        }
        manifestPlaceholders = [
                JPUSH_PKGNAME: applicationId,
                JPUSH_APPKEY : "dd4e96ad705c38f6b9a51f14", /*NOTE: JPush 上注册的包名对应的 Appkey.*/
                JPUSH_CHANNEL: "developer-default", /*暂时填写默认值即可.*/
        ]
    }

注意:将applicationId替换成你自己的applicationId,这个去官网申请。

二、实现推送

  JPush jpushTag = new JPush();
  // 恢复推送功能
  jpushTag.resumePush();

  /// 监听jpush(监听指定tag(personId),推送给指定用户,暂时用于邀请/拒绝加入家庭等)
  jpushTag.setup(appKey: G.jpushAppKey, channel: 'developer-default', production: true, debug: true);
  jpushTag.setTags([G.currentUser.personId]);
  jpushTag.applyPushAuthority(new NotificationSettingsIOS(sound: true, alert: true, badge: true));

  G.showToast("当前监听" + G.currentUser.personId);

  /// 监听jpush
  jpushTag.addEventHandler(
    onReceiveNotification: (Map<String, dynamic> message) async {
      print('jpushTag接收到的数据为: + $message');
      if (message.length > 0) G.hideMessage = true;
    },
    onOpenNotification: (Map<String, dynamic> message) async {
      /// 点击通知栏消息,跳转至消息列表页面
      G.hideMessage = true;
      G.pushNamed('/echo', callback: (val) => false);
    },
  );

注意点:
1.jpushTag.setTags([G.currentUser.personId]); 这里是设置监听的tag,你可以按照你的需要设置
2.onReceiveNotification 这里是收到消息可以做的操作
3.onOpenNotification 这里是收到推送后点击跳转的页面

三、推送示例

进入官网进行推送测试,本示例是用tag做推送:
在这里插入图片描述
在这里插入图片描述

收到推送如图:

四、总结

1、一般来说可以在登录时实现消息监听,也就是将第二点的代码放到登录成功时的操作。
2、在注销时清除tag。怎么清除可以查看文档。文档地址
3、下一篇我会讲java怎么实现后台整合极光推送。
4、谢谢各位!!!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐