极光官网: https://www.jiguang.cn/
1 极光推送环境配置
1.1 注册极光免费账号
1.2 进入应用中心,创建应用
得到AppKey 和 Master Secret
Master Secret:用于服务器端 API 调用时与 AppKey 配合使用达到鉴权的目的,请保管好 Master Secret 防止外泄。
1.3 创建极光推送包名
配置极光安卓了app包名
点击扫描下载安装包,我们得到了可以测试的安装包
安装后即可开始测试。
1.4 进入极光控制台中的 应用中
发起推送 测试是否环境配置成功.
成功则推送配置已经完成。
2 服务器端使用
2.1 配置极光推送sdk
文档: https://docs.jiguang.cn/jpush/server/sdk/nodejs_sdk/
本SDK提供JPush服务端接口的节点封装,与JPush Rest API组件通信。使用时引用该模块即可,可参考附带Demo学习使用方法。
安装 npm install jpush-sdk
2.2 极光推送概念
推送目标:
- alias:别名(每个用户只能指定一个别名)
- tag:标签(为安装了应用程序的用户打上标签,其目的主要是方便开发者根据标签,来批量下发Push 消息)
- registration_id:客户端初始化 JPush 成功后,JPush 服务端会分配一个 Registration ID,作为此设备的标识。(标识某台设备上的app)
2.3 demo
client.push().setPlatform(JPush.ALL)
.setAudience(JPush.alias(targetAlias))
.setNotification( JPush.android('Hi,JPush', 'JPush Title', 1, {'key':'value'}), JPush.ios('Hi, JPush', 'sound', 1))
.send(function(err, message){
if (err) {
console.log(err.message);
return callback(null);
}else{
// console.log('Sendno: ' + message.sendno)
// console.log('Msg_id: ' + message.msg_id);
return callback(null);
}
})
setPlatform(JPush.ALL)
指定推送给所有平台。 可接受JPush.ALL, android, ios, android等参数
setAudience(JPush.alias(targetAlias))
指定推送目标 setAudience,可接受tag(), tag_and(), alias(), registration_id() 创建的对象
setNotification(‘Hi, JPush’, JPush.ios(‘ios alert’, ‘happy’, 5))
本方法接收 ios(), android(), winphone()等方法创建的对象,如果第一个参数为字符串,则指定全局的 alert。除了指定的ios端,其他平台都是收到全局的alter
JPush.android(alert, title, builder_id, extras, priority, category, style, value, alertType)
3 测试中发现的问题
(1) 我们可以使用手机系统中的应用双开功能,来实现得到两个测试app,从而得到2个用户。
(2) 当使用 mocha 测试 极光推送时,如果先发送了响应,会导致测试用例判断测试成功而回收资源,导致极光推送失败(还没有完成推送就已经被回收了的现象)