uni-app读取OAID问题

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

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进行调整。

回到顶部