#文档参考
- 客户端调用api
- 服务端接口文档
- web发送界面,DClound开发者后台
- 官网文档
- UniPush使用指南
#开通uniapp推送服务
#下发推送消息
- 服务端发送,详细说明见文档
- 开发者后台下发推送消息

#客户端处理推送消息
//获取服务供应商uni.getProvider({ service: "push", success: (e) => { console.log("success", e); }, fail: (e) => { console.log("获取推送通道失败", e); }});//开启push接收uni.subscribePush({ provider: '',//unipush,igexin,mipush success: (e) => { uni.showToast({ title: "已开启push接收" }) }})//关闭push接收uni.unsubscribePush({ provider: '',//unipush,igexin,mipush success: (e) => { uni.showToast({ title: "已关闭push接收" }) }})//开始监听遗传数据uni.onPush({ provider: '',//unipush,igexin,mipush success: (e) => { uni.showToast({ title: "开始监听透传数据" }) }, callback: (e) => { uni.showToast({ title: "接收到透传数据" }); }})//移除监听遗传数据uni.offPush({ provider: '',//unipush,igexin,mipush success: (e) => { console.log("移除监听透传数据"); uni.showToast({ title: "移除监听透传数据" }) }})
#5+app方法解析
添加事件监听器
- event:事件类型 - click:从系统消息中心点击消息启动应用事件,用于离线监听 - receive:应用从推送服务器接收到推送消息事件,用于在线监听 - listener:回调函数 - Boolean:是否捕捉事件
plus.push.addEventListener( event, listener, Boolean );
创建本地消息
- content:消息显示的内容 - payload:消息承载的数据 - option:创建消息的额外参数 - [http://www.html5plus.org/doc/zh_cn/push.html#plus.push.MessageOptions](http://www.html5plus.org/doc/zh_cn/push.html#plus.push.MessageOptions)
plus.push.createMessage( content, payload, option );
清空系统中心所有的推送消息
plus.push.clear();
获取所有推送消息
plus.push.getAllMessage();
删除推送消息
- 删除系统消息中心指定的推送消息,可通过getAllMessage方法获取所有的消息后进行操作。 - message:删除的消息对象 - [http://www.html5plus.org/doc/zh_cn/push.html#plus.push.PushMessage](http://www.html5plus.org/doc/zh_cn/push.html#plus.push.PushMessage)
plus.push.getAllMessage();plus.push.remove(message);
#客户端最终处理方案
- 注意:自 HBuilderX 1.7.3 起,HBuilder 基座的推送供应商为 UniPush 服务。
onLaunch: function (){ uni.getProvider({ service: "push", success: (e) => { console.log("success", e); uni.subscribePush({ provider: 'unipush',//unipush,igexin,mipush success: (e) => { uni.showToast({ title: "已开启push接收" }) /* 使用:H5+的方式监听,实现推送*/ plus.push.addEventListener("click", function(msg) { plus.ui.alert("click:"+JSON.stringify(msg)); //逻辑处理... }, false); /* 监听在线消息事件 */ plus.push.addEventListener("receive", function(msg) { /*{ "title": "测试标题", "content": "测试内容", "payload": "{ content: 'test' }" }*/ if(plus.os.name == 'ios') { plus.push.createMessage( msg.payload.content, JSON.stringify(msg.payload) ,{ appid: '_UNI_B73181C', cover: true, icon: '/static/images/hb.png', sound: 'system', title: '标题', subtitle: '副标题' }); } else if (plus.os.name == 'android') { //逻辑处理... } else { return; } }, false); } }) }, fail: (e) => { console.log("获取推送通道失败", e); } });}