美文网首页
Flutter第三方接入-极光推送

Flutter第三方接入-极光推送

作者: 小王在努力 | 来源:发表于2020-10-23 18:35 被阅读0次

1、Flutter使用第三方库

jpush_flutter: 0.6.0

2、Flutter代码实现

class ATPush{
  static void iOSPush(Map<String, dynamic> message){
    try{
      Map<String, dynamic> jsonString =  new Map<String, dynamic>.from(message);
      print(jsonString);
      Map<String, dynamic> aps =  new Map<String, dynamic>.from(jsonString["aps"]);
      print(aps);
      Map<String, dynamic> alert =  new Map<String, dynamic>.from(aps["alert"]);
      print(alert);
      print(alert["title"]);
      Alert info = Alert.fromJson(alert);
      print(info.title);
      print(info.body);
      ATAlertView.showAlertView(title:info.title ,message:info.body,hights: "取消",normals: "确定",completion: (index,title){
        if(index == 1){
          ATJump.jumpToHelp();
        }
      });
    }catch (error){
      print("error json = $error");
    }
  }
    static Future<void> initPlatformState() async {
    String platformVersion;
    final JPush jpush = new JPush();
    try {
      jpush.addEventHandler(
          onReceiveNotification: (Map<String, dynamic> message) async {
            //极光发送通知
            if(Platform.isAndroid){
              ATAlertView.showAlertView(title:message["title"] ,message: message["alert"],hights: "取消",normals: "确定",completion: (index,title){
                if(index == 1){
                  ATJump.jumpToHelp();
                }
              });
            }else{
                iOSPush(message);
            }

            print("flutter onReceiveNotification: $message");

          }, onOpenNotification: (Map<String, dynamic> message) async {
        print("flutter onOpenNotification: $message");
        if(Platform.isIOS){
          iOSPush(message);
        }
        }, onReceiveMessage: (Map<String, dynamic> message) async {
            //极光自定义消息
            if (Platform.isIOS){
              iOSPush(message);
            }else if(Platform.isAndroid){
              ATAlertView.showAlertView(title: "消息推送",message: message["message"],hights: "取消",normals: "确定",completion: (index,title){
                if(index == 1){
                  ATJump.jumpToHelp();
                }
              });
            }
        print("flutter onReceiveMessage: $message");

      }, onReceiveNotificationAuthorization:
          (Map<String, dynamic> message) async {
        print("flutter onReceiveNotificationAuthorization: $message");

      });
    } on PlatformException{
      platformVersion = 'Failed to get platform version.';
    }
    jpush.setup(
      appKey: jShareKey, //你自己应用的 AppKey
      channel: "developer-default",
      production: false,
      debug: true,
    );
    jpush.applyPushAuthority(
        new NotificationSettingsIOS(sound: true, alert: true, badge: true));
    jpush.getRegistrationID().then((rid) {
      print("flutter get registration id : $rid");
    });
  }
}
//注意这里的appKey需要到极光的官网申请

3、Flutter工程的main文件调用

  void initState() {
    super.initState();
    ATShare.share();
    loginAction();
    ATUMeng.flutterUmengInit();
    ATUMeng.beignPageView("main");
    ATPush.initPlatformState();
  }

4、iOS工程设置

由于iOS工程推送需要涉及证书的配置,如果有不懂可以看这篇文章证书配置
配置完后将dev证书上传到极光推送平台。
同时xCode工程记得设置如下图

添加如图

添加完后就可以使用真机测试了

5、安卓工程设置-只支持应用内推送

由于android如果要在杀掉app情况下收到推送,需要在不同的手机渠道商处注册
这里没有注册目前先不使用

安卓工程配置

6、成果展示

极光官网推送内容 iOS手机收到内容

具体代码分析在2里面

相关文章

  • Flutter开发 集成极光推送

    Flutter推送 极光推送Flutter版本 最近研究Flutter推送,在网上找了很多资料,发现极光推送竟然有...

  • Flutter项目接入极光推送

    先奉上Demo地址[https://github.com/kelinZhou/flutterJpushDemo] ...

  • 极光推送接入

    极光推送调研 极光接入 主要功能使用 总结 极光接入 申请极光AppKey 极光接入步骤/引入jar包 申请极光A...

  • Flutter第三方接入-极光推送

    1、Flutter使用第三方库 2、Flutter代码实现 3、Flutter工程的main文件调用 4、iOS工...

  • 接入极光推送

    正常情况下,接入我们接入极光推送的sdk,当应用退出后,用户便无法再接受到推送,那么这样显示是不符合我们的需求得,...

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

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

  • 极光征文 | 我与极光的缘分

    极光征文 | 我与极光的缘分 首先简单介绍下极光推送;极光推送(JPush)是独立的第三方云推送平台,致力于为全球...

  • 简单粗暴的解决引入第三方.aar包的冲突问题

    问题 当我们需要接入一些第三方的功能,常常需要引入第三方库。比较常见的,如极光推送,友盟分享等等。这些第三方...

  • iOS 接入极光推送

    一、推送证书的制作 ①创建一个推送的APPID 1.选择identifiers -> app ids 2.填写描述...

  • flutter极光推送

    在极光开发平台创建应用,一般都是公司帮你创建好的,所以我找了极光文档ios配置可以先不弄,因为需要bundeld,...

网友评论

      本文标题:Flutter第三方接入-极光推送

      本文链接:https://www.haomeiwen.com/subject/tdtbmktx.html