Flutter集成极光推送,点击推送后跳转到指定页面

Flutter集成激光推送的主要步骤有以下几点:
1,到极光推送官网注册账号,创建应用,获取应用的APPKey;
2,点击创建的应用下面的推送设置,主要是ios需要设置开发环境和生产环境的证书,证书需要使用苹果开发者账号在苹果开发者网站申请,申请的时候注意证书的类型,极光需要的是推送证书(分为开发环境和生产环境);
3,按照官网的教程,集成jpush_flutter到项目中,按照官网教程分别配置Android和ios项目。
4,项目中的代码设置:

JPush jpush = new JPush();
    jpush.addEventHandler(
      // 接收通知回调方法。
      onReceiveNotification: (Map<String, dynamic> message) async {
        print("flutter onReceiveNotification: $message");
      },
      // 点击通知回调方法。
      onOpenNotification: (Map<String, dynamic> message) {
        jpush.clearAllNotifications(); //清除通知栏上所有通知
        print("flutter onOpenNotification: $message");
         spikToDetailJpush(message['bizId']);//点击推送通知后,跳转到对对应的页面
      },
    );

    jpush.setup(
      appKey: "在极光官网注册应用时获取的APPKey",
      channel: "theChannel",
      production: false,//设置是开发环境还是生产环境
      debug: false, // 设置是否打印 debug 日志
    );
    //推送设置
    if (Platform.isIOS) {
      jpush.applyPushAuthority(
          new NotificationSettingsIOS(
              sound: true,
              alert: true,
              badge: true)
      );
    }

  spikToDetailJpush(massageId) async{
     Navigator.of(context).push(MaterialPageRoute(builder: (context){
          return JPUSHMessageDetail(id: massageId);
        }));
  }

这里主要想讲一下onOpenNotification方法:当用户点击推送过来的这条消息时,会执行此方法。
这个方法返回过来的message本身就已经是个map了,不需要再进行decode,我刚开始就是没注意到这点,使用json.decode方法后也不报错,但是页面也不会进行跳转。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容