uni-app iOS 本地离线打包 plus.push.getClientInfo()无法获取 cid 只能获取到token

uni-app iOS 本地离线打包 plus.push.getClientInfo()无法获取 cid 只能获取到token

示例代码:

let obj = plus.push.getClientInfo();  
let cli = obj.clientid;  
console.log(" getClientInfo =====> ", obj)  
console.log(" getClientInfo =====> ", cli)

操作步骤:

预期结果:

获取到 clientId

实际结果:

只能拿到 token

bug描述:

完成iOS证书配置之后可在这里进行测试 这里我用 token 进行测试推送 手机可以获取到推送

plus.push.getClientInfo()无法获取 cid 只能获取到token

jsLog: getClientInfo =====> —COMMA------BEGIN:JSON—{“token”:“135070b671829500f830c30128c3f8ff3ee8bc2ba75894e6427aecab158ba5f2”}—END:JSON— at App.vue:318 __LOG


| 信息类别       | 详细信息     |
|----------------|--------------|
| 产品分类       | uniapp/App   |
| PC开发环境操作系统 | Mac          |
| PC开发环境操作系统版本号 | 14.2.1       |
| HBuilderX类型  | Alpha        |
| HBuilderX版本号 | 3.99         |
| 手机系统       | iOS          |
| 手机系统版本号  | iOS 17       |
| 手机厂商       | 苹果         |
| 手机机型       | 12           |
| 页面类型       | vue          |
| vue版本        | vue3         |
| 打包方式       | 离线         |
| 项目创建方式   | HBuilderX    |

更多关于uni-app iOS 本地离线打包 plus.push.getClientInfo()无法获取 cid 只能获取到token的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

https://nativesupport.dcloud.net.cn/AppDocs/usemodule/iOSModuleConfig/push.html
根据文档依次详细排查 依赖库引用、feature.plist文件配置 以及底部注意事项中xcode配置

更多关于uni-app iOS 本地离线打包 plus.push.getClientInfo()无法获取 cid 只能获取到token的实战教程也可以访问 https://www.itying.com/category-93-b0.html


问题已解决 开发者 feature.plist 文件内容配置错误导致

在使用 uni-app 进行 iOS 本地离线打包时,如果遇到 plus.push.getClientInfo() 无法获取 cid 只能获取到 token 的问题,可能是由于以下几个原因导致的:

1. 推送服务配置问题

  • 推送服务未正确配置:确保在 iOS 项目中正确配置了推送服务(如 APNs)。需要在 Apple Developer 中创建并配置推送证书,并在 Xcode 中启用推送通知功能。
  • 推送服务未初始化:在应用启动时,确保推送服务已经正确初始化。可以在 App.vuemain.js 中调用 plus.push.getClientInfo() 来获取客户端信息。

2. uni-app 插件问题

  • 插件版本问题:确保使用的 uni-app 插件版本是最新的,旧版本可能存在一些已知问题。
  • 插件配置问题:在 manifest.json 中正确配置了推送插件。例如:
    {
      "app-plus": {
        "distribute": {
          "ios": {
            "push": {
              "aps": {
                "production": true
              }
            }
          }
        }
      }
    }
    

3. iOS 系统权限问题

  • 通知权限未授权:确保应用已经获取了通知权限。可以在应用启动时请求通知权限:
    plus.push.requestPermission();
    
  • 通知权限被拒绝:如果用户拒绝了通知权限,可能会导致无法获取 cid。可以在设置中检查并重新授权。

4. 代码逻辑问题

  • 异步获取问题plus.push.getClientInfo() 是异步操作,确保在获取到 token 后再尝试获取 cid。例如:
    plus.push.getClientInfo(function(info) {
      console.log('Token:', info.token);
      console.log('CID:', info.clientid);
    }, function(error) {
      console.error('获取客户端信息失败:', error);
    });
回到顶部