uni-app中h5+api plus.push.getClientInfo().clientid未获取cid返回的是字符串的null
uni-app中h5+api plus.push.getClientInfo().clientid未获取cid返回的是字符串的null
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | 10 | HBuilderX |
操作步骤:
h5+api plus.push.getClientInfo().clientid 未获取到cid返回的是字符串的null 这个问题也真够坑的啊 直接用if(cid) 这样不管获取成功还是失败都会是真
预期结果:
h5+api plus.push.getClientInfo().clientid 未获取到cid返回的是字符串的null 这个问题也真够坑的啊 直接用if(cid) 这样不管获取成功还是失败都会是真
实际结果:
h5+api plus.push.getClientInfo().clientid 未获取到cid返回的是字符串的null 这个问题也真够坑的啊 直接用if(cid) 这样不管获取成功还是失败都会是真
bug描述:
h5+api plus.push.getClientInfo().clientid 未获取到cid返回的是字符串的null 直接用if(cid) 这样不管获取成功还是失败都会是真 这应该是属于bug吧

更多关于uni-app中h5+api plus.push.getClientInfo().clientid未获取cid返回的是字符串的null的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于uni-app中h5+api plus.push.getClientInfo().clientid未获取cid返回的是字符串的null的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在uni-app中使用H5+ API时,plus.push.getClientInfo().clientid返回字符串"null"而非JavaScript原生null值,这确实是一个需要注意的兼容性问题。由于"null"在条件判断中为真值,直接使用if(cid)会导致逻辑错误。
解决方案:
- 严格类型判断:使用
cid === null或cid === "null"进行精确比较。 - 综合校验:结合长度、类型和值进行判断:
let cid = plus.push.getClientInfo().clientid; if (cid && cid !== "null" && cid.length > 0) { // 正常处理逻辑 } - 转换为原生null:通过正则或字符串替换将
"null"转为null:let cid = plus.push.getClientInfo().clientid.replace(/^"null"$/, null);

