uni-app 云打包获取oaid报错 {"code":401,"message":"not support"}
uni-app 云打包获取oaid报错 {“code”:401,“message”:“not support”}
示例代码:
plus.device.getOAID({
success:(e)=>{
this.getOAID = JSON.stringify(e);
console.log('getOAID success: '+JSON.stringify(e));
},
fail:function(e){
console.log('getOAID failed: '+JSON.stringify(e));
}
});
操作步骤:
打开登录页面下方有打印,还可以点击登录页面新增设备,账号密码随便输入,提示如果提示唯一id获取失败就是没获取到oaid。
预期结果:
可以获取出来oaid。
实际结果:
获取不出来oaid。
bug描述:
荣耀畅玩20获取oaid报错
{"code":401,"message":"not support"}
小米12 获取oaid不报错但是值为空。
开发环境信息
项目创建方式 | PC开发环境操作系统 | PC开发环境操作系统版本号 | HBuilderX类型 | HBuilderX版本号 | 手机系统 | 手机系统版本号 | 手机厂商 | 手机机型 | 页面类型 | vue版本 | 打包方式 |
---|---|---|---|---|---|---|---|---|---|---|---|
HBuilderX | Windows | 11 | 正式 | 3.8.4 | Android | Android 10 | 华为 | 荣耀畅玩20 | vue | vue2 | 云端 |
你好,我也遇到这个问题了,请问下你后来怎么解决的
针对您提到的uni-app云打包获取OAID(Open Anonymous Device Identifier,开放匿名设备标识符)时报错{"code":401,"message":"not support"}
的问题,这通常意味着您的请求没有通过权限验证,或者您使用的服务/平台不支持该操作。OAID主要用于广告追踪等需要匿名标识用户设备的场景,而不同的平台(如Android、iOS)以及不同的服务提供方(如DCloud、手机厂商等)对OAID的支持和获取方式可能有所不同。
以下是一个基本的思路和一些可能的代码示例,但请注意,由于具体实现依赖于您的环境和平台支持,这些代码可能需要根据实际情况进行调整。
1. 确认平台支持
首先,确保您的应用运行在一个支持OAID获取的平台上。OAID主要在Android平台上使用,且通常由设备厂商提供API来获取。
2. 检查权限配置
确保您的应用已正确配置权限以访问设备信息。在Android中,这通常涉及到在AndroidManifest.xml
中声明必要的权限。
3. 使用第三方库或SDK
由于直接获取OAID可能比较复杂,很多开发者会选择使用第三方库或SDK,如华为、小米等手机厂商提供的SDK,这些SDK通常封装了获取OAID的逻辑。
示例代码(假设使用某厂商SDK)
以下是一个简化的示例,展示了如何在Android平台上使用某厂商提供的SDK来获取OAID(注意,这里的SDK和API是假设的,具体实现需参考实际SDK文档):
// 假设有一个名为OaidManager的类提供了获取OAID的方法
OaidManager oaidManager = new OaidManager(context);
oaidManager.getOaid(new OaidManager.Callback() {
@Override
public void onSuccess(String oaid) {
// 成功获取OAID
Log.d("OAID", "OAID: " + oaid);
}
@Override
public void onFail(int errorCode, String errorMessage) {
// 获取失败
Log.e("OAID", "Error: " + errorCode + " - " + errorMessage);
}
});
4. 注意事项
- 确保您已经集成了正确的SDK,并且SDK版本与您的应用兼容。
- 检查是否有任何网络或配置问题导致权限验证失败。
- 如果您是在uni-app的云打包环境中遇到此问题,可能还需要检查DCloud的官方文档或社区,看看是否有关于OAID获取的特定指导或限制。
由于OAID的获取涉及具体平台和服务,上述代码仅为示例,具体实现需根据实际情况调整。