Android整合推送插件,其中包含了华为、小米、OPPO、VIVO、魅族推送;
iOS集成苹果推送。
iOS注意事项:如果项目中有用到融云聊天插件,请将融云聊天插件更新到最新版本,否则可能无法正常使用推送服务。
首先在各个推送平台上注册应用,然后获取所需参数。开放平台地址及插件所需参数如下:
平台 | 地址 | 需要填写的参数 |
---|---|---|
小米 | https://dev.mi.com/console/appservice/push.html | XIAOMI_APP_ID、XIAOMI_APP_KEY |
OPPO | https://push.oppo.com/ | OPPO_APP_KEY、OPPO_APP_SECRET |
VIVO | https://dev.vivo.com.cn/openAbility/pushNews | VIVO_APP_ID、VIVO_APP_KEY |
魅族 | http://push.meizu.com/ | MEIZU_APP_ID、MEIZU_APP_KEY |
申请华为推送服务时需要SHA256证书指纹
,因APPCloud平台提供了默认的打包证书,所以可使用以下指纹。
3C:DE:B9:39:70:BF:1E:45:79:C3:DC:37:89:2D:4F:68:C5:45:09:37:CA:D8:38:66:A7:E4:46:E1:E1:37:8F:3C
D7:3E:32:11:B9:FF:16:76:33:B2:8A:37:46:48:92:9C:D9:1E:9B:B5:AA:72:CD:E6:A2:9A:BB:22:25:50:BD:95
MIUI上的小米推送,受通知过滤的影响。如需用户感知所有通知,请参考MIUI通知过滤的开发者说明。
VIVO手机安装APP后通知默认处于关闭状态,需要用户手动开启,开启步骤可参考VIVO通知开启步骤。
如果要注册通知监听,则必须在程序启动时deviceready
事件中进行注册。
适配small icon
,格式和样式要求:(small icon
制作好后,存放到 www/push
目录,文件名为 small_icon.png
)
Alpha
透明通道的PNG
图片。透明
的。白色
。padding
。72*72
官方示例如下:
集成华为推送须知,从1.2.4
版本开始,华为推送升级为官方的v2
版本,配置方式较1.2.4
之前的版本有所不同,详情点击查看。
PushNotification.getBindInfo(success, fail)
参数 | 类型 | 说明 |
---|---|---|
succes(bindInfo) | function | 成功回调,bindInfo格式见下表 |
fail(error) | function | 失败回调,格式为:{'errCode':-1,'errMsg':''} |
华为参考文档、小米参考文档、魅族参考文档、VIVO参考文档、OPPO参考文档
bindInfo格式
参数 | 类型 | 说明 |
---|---|---|
applicationId | string | 应用ID |
manufacturer | string | 厂商名称,如xiaomi ,meizu ,apple 等 |
pushChannel | string | 推送通道信息,格式为{通道名 : deviceToken } |
注意(Android):如果未设置某个厂商的推送配置,将统一使用小米通道。例如MEIZU_APP_ID
和MEIZU_APP_KEY
未配置,那么getBindInfo
将返回{applicationId: "...", deviceToken: "...", manufacturer: "meizu", pushChannel: {"xiaomi":deviceToken}}
// 示例
PushNotification.getBindInfo(
function success(result) {
console.log("success", result);
},
function fail(error) {
console.log("error", error);
}
);
PushNotification.addEventListener(callback)
参数 | 类型 | 说明 |
---|---|---|
callback | object | 通知状态回调,目前仅包含onTouched 、onError 回调,具体释义如下 |
仅支持iOS
仅支持Android&小米通道
// 示例
PushNotification.addEventListener({
onTouched: function(data) {
console.log("onTouched", data);
},
onReceived: function(data) {
console.log("onReceived", data);
},
onPassThrough: function(data) {
console.log("onPassThrough", data);
},
onError: function(error) {
console.log("onError", error);
}
});
自定义铃声支持 mp3,wav
iOS 自定义铃声文件需预下载至指定目录下 cordova.file.applicationStorageDirectory + 'Library/Sounds/';
Android 自定义铃声文件与config.json配置文件需打包时,提前放置在www/voice 目录下:
//config.json
[
{
"channelName": "mpush",
"channelId": "mpush",
"channelDescription": "mpush描述",
"fileName": "mpush"
},
{
"channelName": "test",
"channelId": "test",
"channelDescription": "test描述",
"fileName": "test"
}
]
OPPO 小米需在厂商的开发者后台配置channel;
华为必须申请重要推送权限;
Android 8 以上 OPPO 小米 华为 支持系统推送自定义铃声,不支持的机型可使用小米push;
不支持系统推送的机型可使用小米push透传,需要应用保活;
自定义铃声需用户手动开启声音设置方可使用;
iOS 声音播放时长与通知横幅展示时长相关,横幅消失及播放停止。
如通知类型被归为 ‘营销通知’ 需联系厂商解除。
// ios 服务端示例
{
"aps": {
"content-available": 1,
"alert": {
"title": "Push Notification",
"body": "Notification from APNs Provider."
},
"badge": 9,
"sound": "default"//自定义铃声名称
},
"presentNotifiInForeground":1//该key存在,前台不展示横幅与声音;key不存在,展示横幅与声音;与value值无关
}
// xiaomi 服务端示例
{
"pass_through": 1,// 透传类型
"extra.channel_id": "mpush",// mpush为厂商的开发者后台配置channel
"extra.sound_uri": "android.resource://com.mysoft.engineertool/raw/mpush", //mpush为文件名称
"payload": "{\"fileName\":\"mpush\"}"//mpush为文件名称,使用透传时必传
}
// huawei 服务端示例
{
"notification": {
"sound": "raw/mpush",//mpush为文件名称
"channel_id": "mpush",// mpush为厂商的开发者后台配置channel
"importance": "HIGH"
}
}
// OPPO 服务端示例
{
"channel_id": "mpush",// mpush为厂商的开发者后台配置channel
}
PushNotification.clearPushBadgeNumber()
PushNotification.setPushBadgeNumber(count)
注意:仅支持iOS和华为手机
进入华为控制台: https://developer.huawei.com/consumer/cn/service/josp/agc/index.html
点击我的项目
选择目标项目(此处以移动销售为例)
下载agconnect-services.json
将下载好的文件保存,存放到 www/push
目录,文件名为 agconnect-services.json
。