uni-app 开通unipush2.0且勾选离线推送 已配置厂商参数 后台故障排查cid时 设备phonetype类型为小程序 且未获取devicetoken
uni-app 开通unipush2.0且勾选离线推送 已配置厂商参数 后台故障排查cid时 设备phonetype类型为小程序 且未获取devicetoken
类别 | 信息 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Mac |
PC系统版本 | macOS 14.1.1 |
手机系统 | Android |
手机系统版本 | Android 14 |
手机厂商 | 模拟器 |
手机机型 | pixel |
页面类型 | vue |
vue版本 | vue2 |
打包方式 | 云端 |
项目创建方式 | CLI |
CLI版本 | 5.0.0 |
操作步骤:
- 制作自定义基座,或者云打包,运行至模拟器或者手机
预期结果:
- phonetype 显示为安卓,可以获取到devicetoken
实际结果:
- 获取到的cid查询不到devicetoken,phonetype 显示为小程序
bug描述:
{
"push": {
"unipush": {
"version": "2",
"offline": true,
"hms": {},
"icons": {
"small": {
"hdpi": "src/static/push/36_36.png",
"ldpi": "src/static/push/18_18.png",
"mdpi": "src/static/push/24_24.png",
"xhdpi": "src/static/push/48_48.png",
"xxhdpi": "src/static/push/72_72.png"
}
}
}
}
}
7 回复
看你配的离线只有华为,这个cid是华为手机获取的么?
参考下
https://ask.dcloud.net.cn/article/40291
是的
回复 reverspring: 你是标准基座下获取的 cid 吧
回复 reverspring: 我也遇到这个问题了,请问你解决了吗?
我也遇到同样的问题的,我配了小米的,用的也是云打包的基座,按照文章 https://ask.dcloud.net.cn/article/40291的检查流程 检查厂商错误码如图
resultcode是0–成功,但是就是拿不到device Token
请问有什么解决方案和思路吗?
楼主是因为没有打自定义基座导致的,详细描述你的问题
在使用 UniApp 的 UniPush 2.0 进行推送时,如果遇到设备 phonetype
类型为小程序且未获取到 devicetoken
的情况,可以按照以下步骤进行排查和解决:
1. 确认 UniPush 2.0 配置正确
- 确保在 UniApp 后台已经正确开通了 UniPush 2.0 服务,并且勾选了离线推送功能。
- 确保已经正确配置了厂商参数(如华为、小米、OPPO、VIVO 等),并且这些参数已经通过审核。
2. 检查设备类型
phonetype
为小程序,意味着当前设备是通过小程序环境运行的。UniPush 2.0 在小程序环境下可能无法获取到devicetoken
,因为小程序本身并不支持原生推送功能。- 确保你是在原生 App 环境中测试推送功能,而不是在小程序环境中。
3. 检查获取 devicetoken
的代码
-
在 UniApp 中,获取
devicetoken
的代码通常是这样的:uni.getPushClientId({ success: (res) => { console.log('cid:', res.cid); console.log('devicetoken:', res.deviceToken); }, fail: (err) => { console.error('获取推送信息失败:', err); } });