plus.push.getClientInfo获取客户端标识clientid

本文记录了在移动端获取clientid时遇到的问题及解决方案。最初尝试使用plus.push.getClientInfo()同步方式获取,但发现clientid可能为空或'undefined'、'null'。之后采用异步方式plus.push.getClientInfoAsync(),但在真机测试中失败。经过研究,发现通过添加setTimeout定时器可以确保每次都能获取到clientid。问题的解决提示可能存在客户端兼容性或异步处理的延迟问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方案一:

let pinf = plus.push.getClientInfo();
let cid = pinf && pinf.clientid || ''; //客户端标识

有可能取不到clientId,或者为‘undefined’ ‘null' 等字符串

由于可能取不到,然后使用方案二,异步获取

方案二:

plus.push.getClientInfoAsync((info) => {
    cid = info.clientid;
    }, err => {
});

但是我用方案二在手机上真机测试获取cid失败,但是用方案一获取成功,

不清楚什么原因...

打印结果:

 

踩坑记录:

unipush获取的clientid为null,但是偶尔clientid值也可以获取

后来在网上找了好多资料,都没有解决办法,有的说是手机兼容问题,

有帮助的文档:https://ask.dcloud.net.cn/article/34

后来我加了一个setTimeout定时器,发现每次都能拿到clientid值,顺利解决

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值