flutter对接极光推送

  1. 注册极光账号,创建应用
    安卓需要填写应用的包名
    iOS需要填写Bundle ID
    推荐使用Token Authentication配置
    1.获取APNs Auth Key
    苹果版IOS云消息推送配置教程,P8密钥制作APNs Auth Key获取Key ID - 一门APP (yimenapp.com)icon-default.png?t=M5H6https://www.yimenapp.com/info/ping-guo-ban-IOS-yun-xiao-xi-tui-song-pei-zhi-jiao-cheng-P8-mi-yao-zhi-zuo-APNs-Auth-Key-huo-qu-Key-ID-589.html
    请跳转上述教程
    2.获取Team ID
    苹果版IOS云消息推送配置教程,P8密钥制作APNs Auth Key获取Key ID - 一门APP (yimenapp.com)icon-default.png?t=M5H6https://www.yimenapp.com/info/ping-guo-ban-IOS-yun-xiao-xi-tui-song-pei-zhi-jiao-cheng-P8-mi-yao-zhi-zuo-APNs-Auth-Key-huo-qu-Key-ID-589.html
    请跳转上述教程

     
  2. 安卓配置
    去android->app->build.gradle中进行下列配置
     
    defaultConfig {
            applicationId "包名"
            minSdkVersion 21
            targetSdkVersion 30
            versionCode flutterVersionCode.toInteger()
            versionName flutterVersionName
            multiDexEnabled true
    
            ndk {
                //选择要添加的对应 cpu 类型的 .so 库。
                abiFilters 'armeabi', 'armeabi-v7a', 'x86', 'x86_64', 'mips', 'mips64', 'arm64-v8a'
            }
    
            manifestPlaceholders = [
                    JPUSH_PKGNAME : "包名",
                    JPUSH_APPKEY : "Appkey", // NOTE: JPush 上注册的包名对应的 Appkey.
                    JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.
            ]
        }

     
  3. iOS配置

    看下图中,XCode中选中即可



    出现下图即可



     
  4. 初始化推送插件

    在pubspec.yaml中的dependencies中添加
    #极光推送
    jpush_flutter: 2.1.4
    然后封装一个工具类
    class PushUtil {
      static JPush? pushUtil;
    
      static initPush() async {
        if (pushUtil == null) {
          pushUtil = JPush();
        }
    
        try {
          pushUtil!.addEventHandler(
              onReceiveNotification: (Map<String, dynamic> message) async {
            debugPrint("flutter onReceiveNotification: $message");
          },
    
              ///点击的回调事件
              onOpenNotification: (Map<String, dynamic> message) async {
            debugPrint("flutter onOpenNotification: $message");
          }, onReceiveMessage: (Map<String, dynamic> message) async {
            debugPrint("flutter onReceiveMessage: $message");
          }, onReceiveNotificationAuthorization:
                  (Map<String, dynamic> message) async {
            debugPrint("flutter onReceiveNotificationAuthorization: $message");
          });
        } on PlatformException {
          // platformVersion = 'Failed to get platform version.';
        }
    
        pushUtil!.setup(
          appKey: Platform.isIOS ? 'iOS AppKey' : "Android AppKey", //你自己应用的 AppKey
          channel: "theChannel",
          production: false,
          debug: true,
        );
    
        ///声音,震动等设置
        pushUtil!.applyPushAuthority(
            new NotificationSettingsIOS(sound: true, alert: true, badge: false));
    
        ///给后台的registration id
        pushUtil!.getRegistrationID().then((rid) {
          print("flutter get registration id : $rid");
        });
      }
    }


    然后在runApp(MyApp)的MyApp中初始化
     

    ///初始化极光推送
    PushUtil.initPush();
    获取registrationID
    ///获取极光推送注册id
    String registrationID = await PushUtil.pushUtil!.getRegistrationID();


     

  5. 遇到的一些坑
    iOS发布到App Store上以后,安卓也上正式
    安卓的推送可以正常收到,iOS的正式环境收不到
    后面经过和客服沟通,发现是后台发起推送时,
    配置的问题
    apns_production true正式 false测试

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值