根据后端需求需要先绑定别名
bindUnipushAlias(name) {
let alias = `a_${name}`
var isAndorid, PushManager, context, Instance, GeTuiSdk;
isAndorid = plus.os.name == 'Android' ? true : 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) {
//绑定别名
Instance.bindAlias(context, alias);
} else {
GeTuiSdk.bindAliasandSequenceNum(alias, alias);
}
},
之后在App.vue里面调用方法
onLaunch(){
// #ifndef MP-WEIXIN
//传入用户信息作为别名
let userInfo = storage.get('userInfo')
if (userInfo.id) this.bindUnipushAlias(userInfo.id)
//push点进来的方法
plus.push.addEventListener("click", function(res) {
let url = res.payload.page
if (url) uni.navigateTo({
url
})
})
plus.push.addEventListener("receive", function(res) {
let url = res.payload.page
if (url && plus.os.name == 'Android') uni.navigateTo({
url
})
// #endif
}
当然别忘了在manifest.json中配置
tips: 安卓需要各厂商的推送许可,ios需要去申请推送证书哦