uni-app读取OAID问题
uni-app读取OAID问题
信息类别 | 信息内容 |
---|---|
产品分类 | uniapp/App |
PC开发环境操作系统 | Windows |
PC开发环境操作系统版本号 | 10 |
HBuilderX类型 | 正式 |
HBuilderX版本号 | 4.29 |
手机系统 | Android |
手机系统版本号 | Android 15 |
手机厂商 | 小米 |
手机机型 | 红米 |
页面类型 | vue |
vue版本 | vue2 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
示例代码:
{
"version" : "1",
"prompt" : "template",
"title" : "服务协议和隐私政策",
"message" : " 请你务必审慎阅读、充分理解“服务协议”和“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。<br> 你可阅读<a href=\"https://tingshengarden.com/ts-agreement/#/pages/agreement/userTingShen\">《服务协议》</a>和<a href=\"https://tingshengarden.com/ts-agreement/#/pages/agreement/privacyTingShen\">《隐私政策》</a>了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。",
"buttonAccept" : "同意并接受",
"buttonRefuse" : "暂不同意",
"hrefLoader" : "system",
"backToExit" : "false",
"second" : {
"title" : "确认提示",
"message" : "进入应用前,你需先同意<a href=\"https://xx.com/ts-xx/#/pages/agreement/xx\">《服务协议》</a>和<a href=\"https://xx.com/ts-xx/#/pages/xx/xx\">《隐私政策》</a>,否则将退出应用。",
"buttonAccept" : "同意并继续",
"buttonRefuse" : "退出应用"
},
"disagreeMode" : {
"support" : false,
"loadNativePlugins" : false,
"visitorEntry" : false,
"showAlways" : false
},
"styles" : {
"backgroundColor" : "#FFFFFF",
"borderRadius" : "10px",
"title" : {
"color" : "#333333"
},
"buttonAccept" : {
"color" : "#333333"
},
"buttonRefuse" : {
"color" : "#9B9AB9"
}
}
}
操作步骤:
已经填写androidPrivacy.json 还是检测出来,我打包真机后测试,不同意隐私条款是不读取的,
预期结果:
app隐私检测 可以通过
实际结果:
各大审核平台是过不去的,加上一键登录之后
bug描述:
APP 以个人信息处理规则弹窗等形式向用户明示第三方 SDK 处理个人信息的目的、方式和范围,未经用户同意,第三方SDK存在收集 IMEI、IMSI、设备 MAC 地址、SUPI、SUCI、软件安装列表、位置、联系人、通话 记录、日历、短信、本机电话号码、图片、音视频等个人信息。导致审核不过
2 回复
参考Android平台各功能模块隐私合规协议补充一键登录相关的隐私政策。
在处理uni-app读取OAID(Open Anonymous Device Identifier,开放匿名设备标识符)的问题时,通常涉及调用原生插件或集成第三方SDK来获取该标识符。OAID主要用于广告追踪和用户隐私保护,相较于IMEI、MAC地址等传统设备标识符,OAID更具隐私保护性。
以下是一个基于uni-app和Android原生插件读取OAID的示例代码流程:
1. 创建Android原生插件
首先,需要在Android端创建一个插件来获取OAID。这通常涉及集成某个广告平台的SDK(如华为、小米、OPPO等各自的广告SDK),因为OAID的获取依赖于这些平台的支持。
AndroidManifest.xml
确保在AndroidManifest.xml
中添加了必要的权限和SDK配置。
<uses-permission android:name="android.permission.INTERNET"/>
<!-- 其他必要的权限和SDK配置 -->
MyOAIDPlugin.java
创建一个Java类来封装OAID的获取逻辑。
import io.dcloud.feature.uniapp.bridge.UniJSCallback;
import io.dcloud.feature.uniapp.common.UniModule;
import io.dcloud.feature.uniapp.annotation.UniJSMethod;
public class MyOAIDPlugin extends UniModule {
@UniJSMethod(uiThread = false)
public void getOAID(UniJSCallback callback) {
// 调用SDK获取OAID的逻辑
String oaid = getOAIDFromSDK(); // 假设此方法封装了SDK调用
callback.invoke(oaid);
}
private String getOAIDFromSDK() {
// 实现SDK调用逻辑,返回OAID
return "example_oaid";
}
}
2. 在uni-app中调用原生插件
manifest.json
在manifest.json
中注册原生插件。
"plugins": {
"my-oaid-plugin": {
"package": "com.example.myoaidplugin",
"version": "1.0.0",
"provider": "wxxxxxxxxxx"
}
}
在JavaScript中调用
// 引入并使用插件
const myOAIDPlugin = uni.requireNativePlugin('my-oaid-plugin');
myOAIDPlugin.getOAID((oaid) => {
console.log('OAID:', oaid);
});
注意
- 上述代码仅为示例,实际开发中需根据具体SDK的文档进行实现。
- OAID的获取依赖于设备厂商的支持,某些设备可能无法获取OAID。
- 确保遵循隐私政策和相关法律法规,合理使用OAID。
此流程展示了如何在uni-app中通过原生插件读取OAID的基本步骤,但具体实现需根据所集成的SDK进行调整。