1、manifest.json文件配置 勾选push (点击配置设置)
2、点击跳转到dcloud后台管理 开通 Uni Push (按他给的文档来,很简单)
在申请开通时,需要确保输入的 Android包名或 iOS Bundle ID 必须与打包时配置的一致,否则可能会导致无法收到推送消息(很重要,必须要填写的都是一样的)
这时候进行打包app(证书要用自己的)通过unipush管理后台选择全部用户已经可以发送并接收到消息
3、监听消息并处理(例如跳转到消息界面)
代码:
// 监听消息推送
plus.push.addEventListener("click", function(msg) {
console.log("click:" + JSON.stringify(msg));
console.log(msg.payload);
console.log(JSON.stringify(msg));
//do something
}, false);
// 监听在线消息事件
plus.push.addEventListener("receive", function(msg) {
console.log("recevice:" + JSON.stringify(msg))
//do something
}, false);
//#endif
4、推送的范围有很多例如全部范围 区域、 别名、 cid 这种绑定的方式不同。
绑定别名之后开源按别名的范围推送,绑定了这个别名的设备会收到这个推送,后端会按这个别名来推送。
介绍别名的代码(别名不支持 - 有些后端程序喜欢用-来命名,问题找半天)
//绑定
bindAliasAndTag(alias, tags) {
var isAndorid, PushManager, context, Instance, GeTuiSdk;
if (plus.os.name == 'Android') {
isAndorid = true;
} else {
isAndorid = false;
}
if (isAndorid) {
PushManager = plus.android.importClass("com.igexin.sdk.PushManager");
context = plus.android.runtimeMainActivity().getContext();
Instance = PushManager.getInstance();
} else {
GeTuiSdk = plus.ios.importClass("GeTuiSdk");
}
if (isAndorid) {
console.log('获取到cid==', Instance.getClientid(context));
console.log('获取到版本号==', Instance.getVersion(context));
console.log('获取到tags==', JSON.stringify(tags));
console.log('获取到alias==', alias);
//绑定别名
Instance.bindAlias(context, alias);
//绑定标签
var Tag = plus.android.importClass("com.igexin.sdk.Tag");
var tagParam = new Array();
for (let i = 0; i < tags.length; i++) {
var tag = new Tag();
tag.setName(tags[i]);
tagParam[i] = tag;
console.log('tags[' + i + ']==', tags[i]);
}
console.log('tagParam==', JSON.stringify(tagParam));
Instance.setTag(context, tagParam, Date.now() + "");
} else {
GeTuiSdk.bindAliasandSequenceNum(alias, alias);
GeTuiSdk.setTags(tags);
}
}
//解绑
unbind(alias) {
if (isAndorid) {
Instance.unBindAlias(context, alias, true);
} else {
GeTuiSdk.unbindAliasandSequenceNumandIsSelf(alias, alias, true);
}
}
5、其他小功能 显示图标上的角标
//设置数字
plus.runtime.setBadgeNumber(8);
// 清除数字
plus.runtime.setBadgeNumber(0);