uni-app 【报Bug】uni.getPushClientId的方法success,fail,complete在ios自定义调试基座运行时候都没有执行

发布于 1周前 作者 caililin 来自 Uni-App

uni-app 【报Bug】uni.getPushClientId的方法success,fail,complete在ios自定义调试基座运行时候都没有执行

项目 信息
产品分类 uniapp/App
PC开发环境操作系统 Mac
PC开发环境操作系统版本号 MacBook Pro,16-inch,2019,macos sonoma 14.6.1
HBuilderX类型 正式
HBuilderX版本号 4.24
手机系统 iOS
手机系统版本号 iOS 17
手机厂商 模拟器
手机机型 iphone14
页面类型 vue
vue版本 vue3
打包方式 云端
项目创建方式 HBuilderX

操作步骤:

在设备MacBook Pro,16-inch,2019,macos sonoma 14.6.1上运行自定义基座在ios模拟器ios17.5,iphone14获取推送的cid(uni.getPushClientId)

预期结果:

uni.getPushClientId的success,fail,complete至少success,fail有其中一个执行,complete则是应该必须会被执行

实际结果:

uni.getPushClientId的success,fail,complete一个都没有执行

bug描述:

详情见附件

Image


3 回复

你好,你多等一会看看,看看有没有报错信息
另外也可以检查一下模拟器的网是不是没有开启


不晓得怎么个情况,我是紧急上线,所以就暂时先打包上传到apple那边,应该都还没有审核通过,然后我按照你说的检查网络,我打开模拟器的safari浏览器能上百度,再回来重新运行又发现能获取到推送的cid了。不管怎样,能获取到就行

针对你提到的 uni.getPushClientId 方法在 iOS 自定义调试基座运行时 successfailcomplete 回调均未执行的问题,这通常是由于环境配置、权限设置或代码实现上的问题。以下是一个基本的代码示例以及可能的排查方向,帮助你解决这个问题。

代码示例

首先,确保你的 uni-app 项目中正确调用了 uni.getPushClientId 方法,并处理了回调:

uni.getPushClientId({
    success: function (res) {
        console.log('Push Client ID:', res.pushClientId);
    },
    fail: function (err) {
        console.error('Failed to get Push Client ID:', err);
    },
    complete: function () {
        console.log('Get Push Client ID request completed.');
    }
});

排查方向

  1. 检查权限设置

    • 确保在 manifest.json 中已经配置了必要的推送权限。
    • 对于 iOS,需要在 manifest.jsonmp-weixinapp-plush5 等对应平台配置中添加推送相关的权限和配置。
  2. 确认基座配置

    • 确保你使用的自定义调试基座是最新版本,并且支持当前 uni-app 的版本。
    • 检查基座是否已正确配置推送服务(如使用 Apple Developer 账号配置了推送证书)。
  3. 查看控制台日志

    • 使用 Xcode 运行你的应用,并查看控制台输出,可能会有更详细的错误信息。
    • 检查是否有网络请求失败、权限被拒绝或其他相关错误。
  4. 代码调试

    • uni.getPushClientId 调用前后添加额外的日志输出,确认代码执行路径。
    • 使用调试工具检查调用栈,确认回调是否被正确注册和触发。
  5. 查阅文档和社区

    • 查阅最新的 uni-app 官方文档,确认 uni.getPushClientId 的使用方法和参数。
    • 访问 DCloud 社区或相关论坛,看看是否有其他开发者遇到并解决了类似的问题。

通过上述步骤,你应该能够定位问题的原因,并采取相应的措施解决它。如果问题依旧存在,可能需要更详细的日志信息或向 DCloud 官方寻求帮助。

回到顶部