uni-app uniplus无法获取clientId

uni-app uniplus无法获取clientId

类别 信息
产品分类 uniapp/App
PC开发环境 Windows
PC版本号 windows11
HBuilderX 正式
HBuilderX版本 4.76
手机系统 Android
手机版本号 Android 15
手机厂商 OPPO
手机机型 已加ace2
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

示例代码:

export const getClientInfo = () => {
return new Promise((resolve, reject) => {
plus.push.getClientInfoAsync(
(info) => {
console.log(info, "infoinfo");
cid = info.clientid;
resolve(info);
},
(err) => {
console.log(err, "errerr");
reject(err);
}
);
});
};

操作步骤:

  • 打开app,控制台报错

预期结果:

  • 需要拿到clientid

实际结果:

  • 但是没有拿到

bug描述:

获取clientid,自定义基座了,也没有办法获取到。

Image


更多关于uni-app uniplus无法获取clientId的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app uniplus无法获取clientId的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在 uni-app 中通过 uniplus 获取 clientId 失败通常与推送模块配置或权限问题有关。根据你的代码和配置,以下是排查重点:

  1. 推送模块配置检查
    manifest.json 的「App 模块配置」中需勾选「Push(消息推送)」,并确保已配置厂商通道(OPPO 需上传应用密钥)。云端打包后需重新制作自定义基座。

  2. 权限与平台差异

    • Android 15 需在 manifest.json 中声明以下权限:
      <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
      
    • 部分国产机型(如 OPPO)对自启动管理严格,需引导用户手动开启「允许自启动」和「关联启动」。
  3. 代码执行时机优化
    getClientInfoAsync 需在 plusready 事件后调用,建议在 onLaunch 中增加延迟:

    setTimeout(() => {
      plus.push.getClientInfoAsync((info) => {
        console.log('ClientID:', info.clientid)
      })
    }, 1000)
回到顶部