uni-app uniPush v2 获取cid失败 返回 getPushClientId:fail -1: failed, check appkey or appid

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

uni-app uniPush v2 获取cid失败 返回 getPushClientId:fail -1: failed, check appkey or appid

类别 信息
产品分类 uniapp/App
PC开发环境 Windows
PC开发环境版本 windows10
HBuilderX类型 正式
HBuilderX版本 3.7.11
手机系统 Android
手机系统版本 Android 11
手机厂商 小米
手机机型 Redmi K30
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

示例代码:

var info = plus.push.getClientInfo();
console.log("个推信息 " + JSON.stringify(info))
uni.getPushClientId({
success: (res) => {
let push_clientid = res.cid
console.log('客户端推送标识:',push_clientid)
uni.setStorageSync('gt_push_cid',push_clientid);
},
fail(err) {
console.log(err)  
}
})

### 操作步骤:
直接编译运行就会出现。代码放在onLaunch 周期函数内。

### 预期结果:
获取到cid

### 实际结果:
getPushClientId:fail -1: failed,check appkey or appid

### bug描述:

```javascript
var info = plus.push.getClientInfo();
返回: {"id":"unipush","token":"null","clientid":"null","appid":"sAXdY2eysf7hRMzQMvAQc8","appkey":"sFiAiCKL7c5aBElcitxvb7"}
uni.getPushClientId
返回 : getPushClientId:fail -1: failed,check appkey or appid
已检查appkey是和后天一致的。
部分手机是能获取到的。

6 回复

获取不到cid的手机网络通畅吗?


我们用的谷歌推送FCM,关掉手机VPN之后就能获取到了,那国外用APP有没有问题啊

回复 krisign: 哥,这个bug咋解决的,求回复

问题怎么解决的。

我也有这个问题,你们是怎么解决的?

在处理uni-app中uniPush v2获取cid(客户端标识)失败的问题时,首先需要确保你的appkey和appid配置正确无误。以下是一些可能帮助你解决问题的代码案例和检查步骤,但请注意,由于你遇到的是具体的错误代码“-1: failed, check appkey or appid”,核心问题很可能出在配置环节。

1. 检查配置文件

确保你的manifest.json文件中的mp-weixinapp-plus或其他相关平台的配置中,appkey和appid是正确的。以下是一个示例配置片段:

{
  "mp-weixin": {
    "appid": "your-weixin-appid",
    "setting": {
      "urlCheck": false
    }
  },
  "app-plus": {
    "distribute": {
      "apple": {
        "appid": "your-apple-appid"
      },
      "android": {
        "package": "com.example.yourapp"
      }
    },
    "sdkConfigs": {
      "uniPush": {
        "appkey": "your-unipush-appkey"
      }
    }
  }
}

2. 初始化uniPush

在你的应用启动时,确保正确初始化了uniPush。以下是一个初始化uniPush并尝试获取cid的示例代码:

// main.js 或 app.js
import Vue from 'vue'
import App from './App'

Vue.config.productionTip = false

App.mpType = 'app'

const app = new Vue({
    ...App
})

app.$mount()

// 初始化uniPush
#ifdef APP-PLUS
plus.push.addEventListener('receive', function(msg) {
  console.log("收到推送消息:" + JSON.stringify(msg));
});

plus.push.getClientInfo(function(info) {
  console.log("Push客户端信息:" + JSON.stringify(info));
  if (info.cid) {
    console.log("Client ID: " + info.cid);
  } else {
    console.error("Failed to get client ID");
  }
});
#endif

3. 调试和日志

  • 检查控制台日志:运行你的应用并查看控制台输出,看是否有更详细的错误信息。
  • 确保网络通畅:有时候网络问题也会导致获取cid失败。
  • 清理缓存和重新安装:尝试清理应用缓存或重新安装应用,以排除缓存导致的问题。

4. 联系支持

如果以上步骤都无法解决问题,建议联系DCloud官方支持或查看uni-app社区和论坛,看是否有其他开发者遇到并解决了类似的问题。

记住,确保你的appkey和appid是活跃且正确配置的,这是解决此类问题的关键。

回到顶部