#文档参考
- 客户端调用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);
}
});
}