plus.push.getClientInfoAsync((info)=>{
console.log('获取推送信息成功',info);
this.globalData.uuid=info.clientid;
}, function(e){
console.log('获取推送信息失败',e);
});
uni.getPushClientId({
success: (res) => {
console.log('unipush推送',res);
this.globalData.uuid=res.cid;
},
fail(err) {
console.log(err);
}
});
2 个回复
最佳回复
DCloud_uniCloud_JSON
关于uni-push 2.0 是否启用“离线推送”的区别:
关于提问的回答:
所有plus开头的api只能app端使用,uni-push2.0涵盖多端(H5、小程序、APP)而uni.getPushClientId会自动根据当前环境(是否启用离线推送服务)获取正确的设备id
uni-push2.0推荐使用uni.getPushClientId获取cid
plus.push.getClientInfoAsync和plus.push.getClientInfo,仅启用离线推送时,与uni.getPushClientId获取到的设备id一致。
DCloud_Android_THB
确定一下是否勾选了 unipush2.0的离线推送选项卡
Jiang731619 (作者)
有区别吗?
2022-11-01 14:41
Jiang731619 (作者)
勾选了的
2022-11-01 14:45
Jiang731619 (作者)
我打自定义基座时把离线去掉又看了一下,两个接口返回的cid还是不一样。应该用哪个呢
2022-11-01 14:49
DCloud_Android_THB
回复 Jiang731619: appid发我一下,我帮你查一下。
2022-11-01 14:59
Jiang731619 (作者)
UNI0C7D01D
2022-11-01 15:12
DCloud_Android_THB
回复 Jiang731619: 2022-11-01 14:43:15的打包 你的配置是
"unipush": { "offline": false, "version": "2",
你检查一下hx的manifest.json源码视图。2022-11-01 15:19
DCloud_Android_THB
回复 Jiang731619: 在unipush2.0的时候只需要用uni.getPushClientId即可,因为在实现上来说,不勾选离线推送的情况下会采用jssdk来获取cid,而plus的接口会调用原生sdk的cid。
2022-11-01 15:23
Jiang731619 (作者)
回复 DCloud_Android_THB: 我勾选和不勾选离线的都测过,在unipush后台测试时只有用plus.push.getClientInfoAsync获取的clientid才能收到推送消息
2022-11-01 15:42
DCloud_Android_THB
回复 Jiang731619: 我看你的打包记录 ,只有2022-11-01 14:43:15的这一次。
2022-11-01 15:51
Jiang731619 (作者)
回复 DCloud_Android_THB: 我刚刚把离线勾上重新打了个基座,获取的cid是不一样的。
2022-11-01 16:03
DCloud_Android_THB
回复 Jiang731619: 那就诡异了,我这边刚刚测试了一下,是一致的,这样我单独给你看看吧 ,留一下q。
2022-11-01 16:40
Jiang731619 (作者)
回复 DCloud_Android_THB: 我可能猜到问题了,可能是我勾了离线推送但是没有勾选对应手机厂商的sdk。
2022-11-01 16:58