900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Flutter极光推送集成小米厂商通道【教程】

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

时间:2021-12-08 10:55:28

相关推荐

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

极光推送官方已经开发出Flutter版的插件,地址:https://pub.dev/packages/jpush_flutter

在Flutter项目里面的pubspec.yaml里面依赖极光推送:jpush_flutter: 2.1.2

截图如下:

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.

点击确认,然后直接点下一步

然后需要填写包名,把咋们项目的包名填上去,注意底下 的那些推送通道默认勾选好了,直接点击下一步

然后点击左侧菜单的概览,再点击我们刚新建好的应用,名字右边有个小齿轮,点一下就能查看应用的APPKEY了:

复制显示出来的appkey字段,填写到我们项目里的android/app/build.gradle下面的JPUSH_APPKEY对应的地方:

然后再main.dart下加入如下代码,初始化极光推送:

final JPush jpush = new JPush();

@overridevoid initState() {// TODO: implement initStatesuper.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", //你自己应用的 AppKeychannel: "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版本的极光推送最基础的集成就完成了,也能实现推送,但是!!!如果这个APP在手机上进程被杀掉,没有在前台运行,或者手机开机以后从来没有打开过这个APP,这样是收不到推送消息的,因为现在各个品牌的手机都有自己的推送通道,只有接入了每个厂商的推送通道,APP才会在进程被杀掉的情况下收到推送消息。所以以小米手机为例,还要做一部分工作,完成小米厂商通道的接入,推送才算完全集成,接入小米厂商推送教程如下:

登陆小米开发者官网:

/console/

现在小米开发者已经不支持 “个人开发者”的认证了,只能是企业认证,这一点注意一下,如果你没有企业认证的话,得先去认证企业开发者。

点击管理控制台,点击创建应用

填写我们项目的包名,还有应用名称

红框里的APPID APPKEY这些都是要用到的,步骤到下面这个截图就完了,点击保存就OK。

重新再次点击“管理控制台”,点击“消息推送”菜单:

点击启用推送:

点击我同意,点击启用:

然后就能看到我们新创建的应用的关键信息,

APPID,APPKEY这些信息,记住这些数据,这些待会要用到

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

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

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

build.gradle的部分截图如下:

还要依赖一下极光推送的小米厂商通道的依赖:

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

整体截图如下:

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

注意!这一步很重要,必须配置,漏了的话,在APP被杀死的情况下会接收不到消息

下面的截图有5个红框,注意一下!

先点击激光控制台左侧菜单“消息推送”,再展开推送设置,再点击集成设置,点击厂商名称“小米”,在右边的输入框里面填写appid、appsecret、appkey,这三个字段都是前面我们在小米开发者网站上获取到的

把小米开发者网站获取到的appid、appsecret、appkey填写到上图的输入框内:

一定要点击启用开关,默认是关闭的!!!

然后跑起来项目,把进程杀掉,再次点击推送消息,测试手机是否收到消息!

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。