uni-app中【报Bug】uni.getPushClientId获取的cid与plus.push.getClientInfoAsync获取的clientid不一样
uni-app中【报Bug】uni.getPushClientId获取的cid与plus.push.getClientInfoAsync获取的clientid不一样
信息类别 | 详情 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Windows |
PC版本号 | win10 |
HBuilderX | 正式版 |
HBuilderX版本号 | 3.6.8 |
手机系统 | Android |
手机版本号 | Android 11 |
手机厂商 | 小米 |
手机机型 | 小米9pro |
页面类型 | vue |
vue版本 | vue2 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
示例代码:
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);
}
});
操作步骤:
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);
}
});
预期结果:
uni.getPushClientId获取的cid与plus.push.getClientInfoAsync获取的clientid不一样
实际结果:
uni.getPushClientId获取的cid与plus.push.getClientInfoAsync获取的clientid不一样
bug描述:
uni.getPushClientId获取的cid与plus.push.getClientInfoAsync获取的clientid不一样
更多关于uni-app中【报Bug】uni.getPushClientId获取的cid与plus.push.getClientInfoAsync获取的clientid不一样的实战教程也可以访问 https://www.itying.com/category-93-b0.html
关于uni-push 2.0 是否启用“离线推送”的区别:
不启用 劣势:不支持离线推送;优势:体积小,无需打包(即:可以直接用标准基座调试)。
启用 劣势:体积大,必须正确配置证书、包名等信息打包(含:自定义基座)后才能使用或调试。优势:支持离线推送,详情:https://uniapp.dcloud.net.cn/unipush-v2.html#offline
关于提问的回答:
所有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一致。
更多关于uni-app中【报Bug】uni.getPushClientId获取的cid与plus.push.getClientInfoAsync获取的clientid不一样的实战教程也可以访问 https://www.itying.com/category-93-b0.html
确定一下是否勾选了 unipush2.0的离线推送选项卡
有区别吗?
勾选了的
我打自定义基座时把离线去掉又看了一下,两个接口返回的cid还是不一样。应该用哪个呢
回复 Jiang731619: appid发我一下,我帮你查一下。
UNI0C7D01D
回复 Jiang731619: 2022-11-01 14:43:15的打包 你的配置是 “unipush”: { “offline”: false, “version”: “2”, 你检查一下hx的manifest.json源码视图。
回复 Jiang731619: 在unipush2.0的时候只需要用uni.getPushClientId即可,因为在实现上来说,不勾选离线推送的情况下会采用jssdk来获取cid,而plus的接口会调用原生sdk的cid。
回复 DCloud_Android_THB: 我勾选和不勾选离线的都测过,在unipush后台测试时只有用plus.push.getClientInfoAsync获取的clientid才能收到推送消息
回复 Jiang731619: 我看你的打包记录 ,只有2022-11-01 14:43:15的这一次。
回复 DCloud_Android_THB: 我刚刚把离线勾上重新打了个基座,获取的cid是不一样的。
回复 Jiang731619: 那就诡异了,我这边刚刚测试了一下,是一致的,这样我单独给你看看吧 ,留一下q。
回复 DCloud_Android_THB: 我可能猜到问题了,可能是我勾了离线推送但是没有勾选对应手机厂商的sdk。