flutter集成极光推送教程

先去极光后台创建应用

然后在这里填写自己的flutter包名


然后在这里填写包名

自己的包名在这里看到

JPUSH_PKGNAME填写自己的包名
具体包名在这里可以找到


image.png

或者这里
image.png

JPUSH_APPKEY填写创建应用的秘钥


秘钥这里找

JPUSH_CHANNEL默认所写内容

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

当然别忘了在pubspec.yaml里获取极光插件库

jpush_flutter: 0.1.0 #极光推送
image.png
别忘了get

在main.dart里引用库

///推送
import 'package:jpush_flutter/jpush_flutter.dart';

然后在MyApp里声明变量

String debugLable = 'Unknown';   /*错误信息*/
final JPush jpush = new JPush(); /* 初始化极光插件*/

在initState里初始化JPush,注意 jpush.setup这里4个参数必填,官方文档没提,但这里少一个就会导致ios闪退

    /// 配置jpush(不要省略)
    ///debug就填debug:true,我这是生产环境所以production:true
    jpush.setup(appKey: '自己的秘钥' ,channel: 'developer-default',production: true,debug: false);
    /// 监听jpush
    jpush.applyPushAuthority(
        new NotificationSettingsIOS(sound: true, alert: true, badge: true));
    jpush.addEventHandler(
      onReceiveNotification: (Map<String, dynamic> message) async {
        print(message);
      },
      onOpenNotification: (Map<String, dynamic> message) async {
        /// 点击通知栏消息,在此时通常可以做一些页面跳转等

      },
    ); 

测试是否可以推送
在一个页面引入极光库

///推送
import 'package:flutter/services.dart';
import 'package:jpush_flutter/jpush_flutter.dart';

老样子配置变量

String debugLable = 'Unknown';   /*错误信息*/
final JPush jpush = new JPush(); /* 初始化极光插件*/

随便找一个触发按钮函数测试

/*三秒后出发本地推送*/
var fireDate = DateTime.fromMillisecondsSinceEpoch(DateTime.now().millisecondsSinceEpoch + 1000);
var localNotification = LocalNotification(
    id: 234,
    title: '我是推送测试标题wwwwwwwww',
    buildId: 1,
    content: '看到了说明已经成功了hahahaha',
    fireTime: fireDate,
    subtitle: '一个测试qqqqqqqq',
);
jpush.sendLocalNotification(localNotification).then((res) {
    print('sddd');
    setState(() {
        debugLable = res;
    });
});

配置极光的tag和别名还有ios端的证书配置稍后更新
ios苹果端并不需要改动代码,只需要配置证书开启服务就行
先打开runner文件(ios代码)


image.png

在xcode打开后按如下步骤来开启push功能
在此前别忘了配置你的appleID


image.png

image.png

image.png

一般来说这里appid都是公司给你的,而且我这边已经自动配置好了Identifiers
image.png

所以暂且略过如和配置Identifiers,我记得如果你开启了Automatically manage signing(自动管理证书)的功能,会自动在你的appleID开发者账户里创建和你项目Bundle Identifier一样的Identifiers,什么是Automatically manage signing呢
就是下面这个


image.png

所以选择好team后,按下面开启push功能
image.png

双击开启push功能,成功开启后是这样的
image.png

剩下的就是在你的开发者中心配置推送证书了
image.png

image.png

点击你的Identifiers,进去后往下滑,找到Push Notifications,打钩然后Configure

这一步需要上传你本机生成的证书文件
image.png

那我们先去生成证书,这个开发者中心这一步暂停

打开本机的
image.png

image.png

这里的用户电子邮件地址和CA电子邮件地址我填写的是公司appleid的邮箱
常用名称建议起一个记得住分得清的名字,例如我就是按照项目名+具体端(商户端或者客户端)+用途(Push),注意要存储到磁盘,然后点击继续下一步
image.png

保存到桌面即可,建议单独建立一个新文件夹来存放这个项目所需要的证书,以免以后乱
image.png

然后把这个证书上传到刚刚我们暂停的地方
image.png

选择我们刚刚生成的证书,然后continue
image.png

然后download就行,这个就是Development开发环境的证书
image.png

重复步骤弄好Production生成环境证书,最后得到两个这个文件.cer
image.png

一个是开发一个是生产
我们之前的也有变化
image.png

这里可以看到推送证书过期时间
image.png

如果证书找不到还可以来这里从新下载
但极光后台要的是p12后缀的证书
所以分别双击打开
image.png

然后在本机的钥匙串访问里找到,根据后面的Bundle Identifier
image.png

分别右击导出
image.png

image.png

这里的密码是自己自定义的证书密码,记住就行



如果还有一步输入密码则是你电脑的登录密码授权而已
最后一共4个文件
image.png

然后回到极光开发后台
image.png

分别上传后缀为.p12的对应证书,密码则是刚刚你自己设置的证书密码
image.png

是否将生产证书用于开发环境,这个选项是假如你就一个生产证书的话,极光也可以用于开发环境下推送测试,我们全都有,所以不需要,直接保存
然后能看到这里的过期时间和苹果开发者中心那边的过期时间是一样的

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