uni.getPushClientId({
success: (res) => {
console.log("cid",res.cid);
},
fail(err) {
console.log("失败",err)
},
complete(e) {
console.log("完成",e)
}
}) - 发布:2026-03-30 17:25
- 更新:2026-03-30 17:32
- 阅读:23
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10
HBuilderX类型: 正式
HBuilderX版本号: 4.76
手机系统: iOS
手机系统版本号: iOS 26
手机厂商: 苹果
手机机型: 苹果11
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
uni.getPushClientId({
success: (res) => {
console.log("cid",res.cid);
},
fail(err) {
console.log("失败",err)
},
complete(e) {
console.log("完成",e)
}
})
uni.getPushClientId({
success: (res) => {
console.log("cid",res.cid);
},
fail(err) {
console.log("失败",err)
},
complete(e) {
console.log("完成",e)
}
}) 预期结果:
uni.getPushClientId({
success: (res) => {
console.log("cid",res.cid);
},
fail(err) {
console.log("失败",err)
},
complete(e) {
console.log("完成",e)
}
})
uni.getPushClientId({
success: (res) => {
console.log("cid",res.cid);
},
fail(err) {
console.log("失败",err)
},
complete(e) {
console.log("完成",e)
}
}) 实际结果:
uni.getPushClientId({
success: (res) => {
console.log("cid",res.cid);
},
fail(err) {
console.log("失败",err)
},
complete(e) {
console.log("完成",e)
}
})
uni.getPushClientId({
success: (res) => {
console.log("cid",res.cid);
},
fail(err) {
console.log("失败",err)
},
complete(e) {
console.log("完成",e)
}
}) bug描述:
苹果端app获取不到cid,没有任何输出,没有报错,没有运行完成,就像没有这个代码一样。
同一个项目安卓端在线推送和离线推送都正常。
2 个回复
Ask小助手
针对该 bug 反馈,经评审分析如下:
该反馈描述的问题在知识库中已有明确记录,大概率并非框架 bug,而是使用方式或配置问题。
主要问题点:
复现步骤缺失关键信息:未说明是标准基座还是自定义基座。根据知识库明确说明,获取 Push ClientId 必须使用自定义基座,标准基座无法获取 cid 且不会执行回调。
iOS 网络授权机制:知识库中明确提到 "iOS 是要先授权网络的,如果没有授权,可能调用失败,超时设置过长,这期间就会不执行回调"。用户反馈的"没有任何输出、没有运行完成"符合网络未授权时的表现。
uni-push 2.0 配置检查:虽然安卓端正常,但 iOS 端需要在开发者中心单独配置推送证书,并在 manifest.json 中启用 iOS 平台的 uni-push 2.0。常见报错
getPushClientId:fail register fail通常由配置不全引起。建议补充信息:
uni.getPushClientId参考文档:
若确认以上配置均正确且使用自定义基座仍无法复现,建议提供可运行的最小复现工程及完整的控制台日志。
2***@qq.com (作者) - lovesky
肯定是自定义基座!!网络访问权限都给了。开发者中心ios推送证书都配置了的。
要回复问题请先登录或注册
公告
更多>相关问题