Jiang731619
Jiang731619
  • 发布:2022-11-01 11:33
  • 更新:2022-11-01 15:33
  • 阅读:721

【报Bug】uni.getPushClientId获取的cid与plus.push.getClientInfoAsync获取的clientid不一样

分类:uni-app

产品分类: 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不一样

2022-11-01 11:33 负责人:DCloud_Android_THB 分享
已邀请:

最佳回复

DCloud_uniCloud_JSON

DCloud_uniCloud_JSON

关于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一致。

DCloud_Android_THB

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

要回复问题请先登录注册