Flutter极光推送集成小米厂商通道【教程】

极光推送官方已经开发出Flutter版的插件,地址:https://pub.dev/packages/jpush_flutter
在Flutter项目里面的pubspec.yaml里面依赖极光推送:jpush_flutter: 2.1.2
截图如下:
Flutter极光推送集成小米厂商通道【教程】_第1张图片
Android:
在 /android/app/build.gradle 中的"android"节点添加下列代码:

android: {
  ....
  defaultConfig {
    applicationId "com.example.jpush_demo"
    ...
    ndk {
	//选择要添加的对应 cpu 类型的 .so 库。
	abiFilters 'armeabi', 'armeabi-v7a', 'x86', 'x86_64', 'mips', 'mips64', 'arm64-v8a',        
    }

    manifestPlaceholders = [
        JPUSH_PKGNAME : applicationId,
        JPUSH_APPKEY : "appkey", // NOTE: JPush 上注册的包名对应的 Appkey.
        JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.
    ]
  }    
}

其中JPUSH_APPKEY需要在极光推送官网控制台创建一个应用,拿到appkey填写到这个地方,极光推送官网创建应用的步骤如下:

1.Flutter极光推送集成小米厂商通道【教程】_第2张图片
Flutter极光推送集成小米厂商通道【教程】_第3张图片
Flutter极光推送集成小米厂商通道【教程】_第4张图片
Flutter极光推送集成小米厂商通道【教程】_第5张图片
Flutter极光推送集成小米厂商通道【教程】_第6张图片
点击确认,然后直接点下一步
Flutter极光推送集成小米厂商通道【教程】_第7张图片
然后需要填写包名,把咋们项目的包名填上去,注意底下 的那些推送通道默认勾选好了,直接点击下一步
Flutter极光推送集成小米厂商通道【教程】_第8张图片
然后点击左侧菜单的概览,再点击我们刚新建好的应用,名字右边有个小齿轮,点一下就能查看应用的APPKEY了:
Flutter极光推送集成小米厂商通道【教程】_第9张图片
复制显示出来的appkey字段,填写到我们项目里的android/app/build.gradle下面的JPUSH_APPKEY对应的地方:
Flutter极光推送集成小米厂商通道【教程】_第10张图片
Flutter极光推送集成小米厂商通道【教程】_第11张图片
然后再main.dart下加入如下代码,初始化极光推送:

  final JPush jpush = new JPush();
  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    initPlatformState();
  }
 // Platform messages are asynchronous, so we initialize in an async method.
  Future<void> initPlatformState() async {
    try {
      jpush.addEventHandler(
          onReceiveNotification: (Map<String, dynamic> message) async {
            print("flutter onReceiveNotification: $message");
          }, onOpenNotification: (Map<String, dynamic> message) async {
        print("flutter onOpenNotification: $message");

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

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

      });
    } on PlatformException {

    }

    jpush.setup(
      appKey: "7a77110489c2ea0389b4f90e", //你自己应用的 AppKey
      channel: "jpush_demo",
      production: false,
      debug: true,
    );
    jpush.applyPushAuthority(
        new NotificationSettingsIOS(sound: true, alert: true, badge: true));

    // Platform messages may fail, so we use a try/catch PlatformException.
    jpush.getRegistrationID().then((rid) {
      print("flutter get registration id : $rid");

    });

    // If the widget was removed from the tree while the asynchronous platform
    // message was in flight, we want to discard the reply rather than calling
    // setState to update our non-existent appearance.
    // if (!mounted) return;

  }

注意,上面代码里面的jpush.setup方面里面也要填写在控制台新建应用的appkey,至于channel,随便填
至此,最基础的Flutter版的极光推送集成完毕,可以测试推送了
点击控制台左边的“消息推送菜单”,然后点击立即体验

点击创建推送:
Flutter极光推送集成小米厂商通道【教程】_第12张图片
然后把要推送的标题内容都填写完,点击下方的发送预览按钮,再点击确认
Flutter极光推送集成小米厂商通道【教程】_第13张图片
然后手机端就会收到推送消息:
Flutter极光推送集成小米厂商通道【教程】_第14张图片
注意!!!!!!

到这里Flutter版本的极光推送最基础的集成就完成了,也能实现推送,但是!!!如果这个APP在手机上进程被杀掉,没有在前台运行,或者手机开机以后从来没有打开过这个APP,这样是收不到推送消息的,因为现在各个品牌的手机都有自己的推送通道,只有接入了每个厂商的推送通道,APP才会在进程被杀掉的情况下收到推送消息。所以以小米手机为例,还要做一部分工作,完成小米厂商通道的接入,推送才算完全集成,接入小米厂商推送教程如下:

登陆小米开发者官网:
https://dev.mi.com/console/
现在小米开发者已经不支持 “个人开发者”的认证了,只能是企业认证,这一点注意一下,如果你没有企业认证的话,得先去认证企业开发者。
Flutter极光推送集成小米厂商通道【教程】_第15张图片
点击管理控制台,点击创建应用
Flutter极光推送集成小米厂商通道【教程】_第16张图片
填写我们项目的包名,还有应用名称
Flutter极光推送集成小米厂商通道【教程】_第17张图片
红框里的APPID APPKEY这些都是要用到的,步骤到下面这个截图就完了,点击保存就OK。
Flutter极光推送集成小米厂商通道【教程】_第18张图片
重新再次点击“管理控制台”,点击“消息推送”菜单:
Flutter极光推送集成小米厂商通道【教程】_第19张图片
点击启用推送:
在这里插入图片描述
点击我同意,点击启用:
Flutter极光推送集成小米厂商通道【教程】_第20张图片
然后就能看到我们新创建的应用的关键信息,
APPID,APPKEY这些信息,记住这些数据,这些待会要用到
Flutter极光推送集成小米厂商通道【教程】_第21张图片

现在回到咋们项目里面,项目还需要配置一下。

在android/app/build.gradle文件,里面的manifestPlaceholders属性要增加两句话:

  XIAOMI_APPKEY : "MI-5941996139182", // 小米平台注册的appkey,注意不要将前缀去掉 MI-appkey
  XIAOMI_APPID : "MI-2882303761519961182", // 小米平台注册的appid,注意不要将前缀去掉 MI-appid

build.gradle的部分截图如下:
Flutter极光推送集成小米厂商通道【教程】_第22张图片
还要依赖一下极光推送的小米厂商通道的依赖:

dependencies {
    implementation 'cn.jiguang.sdk.plugin:xiaomi:4.0.6'//版本号和对应的JPush版本号相同
}

整体截图如下:
Flutter极光推送集成小米厂商通道【教程】_第23张图片

好了,Android Studio项目的配置这里就完成了,接下来要去极光推送的控制台配置一下:

注意!这一步很重要,必须配置,漏了的话,在APP被杀死的情况下会接收不到消息
下面的截图有5个红框,注意一下!
先点击激光控制台左侧菜单“消息推送”,再展开推送设置,再点击集成设置,点击厂商名称“小米”,在右边的输入框里面填写appid、appsecret、appkey,这三个字段都是前面我们在小米开发者网站上获取到的
Flutter极光推送集成小米厂商通道【教程】_第24张图片
把小米开发者网站获取到的appid、appsecret、appkey填写到上图的输入框内:
Flutter极光推送集成小米厂商通道【教程】_第25张图片
一定要点击启用开关,默认是关闭的!!!
Flutter极光推送集成小米厂商通道【教程】_第26张图片
然后跑起来项目,把进程杀掉,再次点击推送消息,测试手机是否收到消息!
Flutter极光推送集成小米厂商通道【教程】_第27张图片

小米手机在后台被杀死的情况下,收到了推送!证明接入小米厂商通道成功!大功告成!!!

Flutter极光推送集成小米厂商通道【教程】_第28张图片

你可能感兴趣的:(Flutter,极光推送,厂商通道,Flutter,Android,推送消息)