uni-app 您好 app存在同意隐私弹窗前未经授权采集个人信息请修改谢谢(违规点)

uni-app 您好 app存在同意隐私弹窗前未经授权采集个人信息请修改谢谢(违规点)

项目信息 详细信息
产品分类 uniapp/App
PC开发环境 Windows
PC操作系统版本 win11
HBuilderX类型 正式
HBuilderX版本 4.65
手机系统 Android
手机系统版本 Android 16
手机厂商 小米
手机机型 红米12tub
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

操作步骤:

  • app检测到用户同意隐私政策前采集个人信息。具体为OAID等

预期结果:

  • 同意前不采集

实际结果:

  • app检测到用户同意隐私政策前采集个人信息。具体为OAID等

bug描述:

  • 在抖音巨量广告推广app,对方检测到app存在同意隐私弹窗前,未经授权采集个人信息,审核驳回,无法进行后续推广。需要官方人员协助排查,反馈了堆栈调用信息。

1838334697508233_(1).zip


更多关于uni-app 您好 app存在同意隐私弹窗前未经授权采集个人信息请修改谢谢(违规点)的实战教程也可以访问 https://www.itying.com/category-93-b0.html

18 回复

需要官方专业人士帮助解决

更多关于uni-app 您好 app存在同意隐私弹窗前未经授权采集个人信息请修改谢谢(违规点)的实战教程也可以访问 https://www.itying.com/category-93-b0.html


已经配置了原生隐私政策弹窗

原生隐私政策弹窗配置如下

申诉说行为是用户同意隐私政策弹窗后才触发,仍旧被驳回。已经交涉驳回N次了

华为 小米 oppo vivo 荣耀 应用宝都是已经上架了的

你看看你的app.vue中,有没有plus.之类的api

<script> import Vue from 'vue' import websocket from '@/utils/utils/websocket.js'; import $store from '@/store/index.js'; import {permisionTips} from "@/common/enum.js"; // #ifdef APP import { registerRequestPermissionTipsListener, unregisterRequestPermissionTipsListener, setRequestPermissionTips } from "@/uni_modules/uni-registerRequestPermissionTips" // #endif export default { onLaunch: function() { console.log('App Launch'); this.savePhoneSysInfo(); // #ifdef APP-PLUS // 监听通知点击事件 plus.push.addEventListener("click", (message)=>{ console.log("用户点击了通知:", message); const {payload={}} = message; const {path="",...rest} = payload; if(path){ this.$to('navigateTo',{path,query:rest}) } });
</script>
<style lang="scss"> / 注意要写在第一行,同时给style标签加入lang="scss"属性 / [@import](/user/import) "@/uni_modules/uview-ui/index.scss"; </style> <style> /每个页面公共css static/inconFont/iconfont.css/ / icon.css - 自定义图标库 / [@import](/user/import) url("@/static/iconFont/iconfont.css"); /每个页面公共css / [@font-face](/user/font-face) { font-family: 'alimamashuheiti'; src: url('/static/fonts/alimamashuheiti.ttf') format('truetype'); / 根据实际情况调整路径和格式 / } [@font-face](/user/font-face) { font-family: 'alibabapuhuiti'; src: url('/static/fonts/alibabapuhuiti.ttf') format('truetype'); / 根据实际情况调整路径和格式 / } [@font-face](/user/font-face) { font-family: 'siyuanheiti'; src: url('/static/fonts/SourceHanSansSC-Normal-2.otf') format('truetype'); / 根据实际情况调整路径和格式 / }
</style>

确实有plus之类的api

回复 聪冲冲冲: 你这个应该不影响,不是获取设备的,getSystemInfo 我看你有这个,问题应该是他

回复 套马杆的套子: 我本地真机跑的时候,我看控制台如果没有同意隐私政策的话,main.js都没执行,打印语句都没有。我试试把他换到其他位置试试

回复 聪冲冲冲: 上架华为市场,会对这个也比较严格,之前上华为的时候,搞过这个

回复 套马杆的套子: 华为这个就是加上原生隐私政策弹窗过的。不过我后面发给他测试账号和密码他都登录密码错误,我就怀疑包可能有问题,我重新上传了正确的生产包,然后审核通过了

<script> import Vue from 'vue' import websocket from '@/utils/utils/websocket.js'; import $store from '@/store/index.js'; import {permisionTips} from "@/common/enum.js"; // #ifdef APP import { registerRequestPermissionTipsListener, unregisterRequestPermissionTipsListener, setRequestPermissionTips } from "@/uni_modules/uni-registerRequestPermissionTips" // #endif export default { onLaunch: function() { console.log('App Launch'); this.savePhoneSysInfo(); // #ifdef APP-PLUS // 监听通知点击事件 plus.push.addEventListener("click", (message)=>{ console.log("用户点击了通知:", message); const {payload={}} = message; const {path="",...rest} = payload; if(path){ this.$to('navigateTo',{path,query:rest}) } }); // #endif }, onShow: function() { console.log('App Show') this.refreshSocket(); // #ifdef APP-PLUS plus.runtime.setBadgeNumber(0);//清空应用的角标 // #endif }, onHide: function() { console.log('App Hide') }, onExit: function() { unregisterRequestPermissionTipsListener(null) }, methods:{ async savePhoneSysInfo(){ // #ifdef H5 this.$storageManager.set('tingyou_sysInfo',{statusBarHeight:30}); this.$storageManager.set('NavbarHeight','64px'); Vue.prototype.$osName = 'H5'; // #endif // #ifdef APP-PLUS let result = await uni.getSystemInfoSync(); this.$storageManager.set('tingyou_sysInfo',result); let {statusBarHeight,osName} = result; Vue.prototype.$osName = osName; let device_navbarHeight = 0; if(osName==='android'){ device_navbarHeight = statusBarHeight + 48 + 'px';//安卓设备多为48px this.requestPermissionListener(result.brand);//安卓端华为需要展示权限使用目的 }else if(osName==='ios'){ device_navbarHeight = statusBarHeight + 44 + 'px'; //苹果设备多为44px } this.$storageManager.set('NavbarHeight',device_navbarHeight); // #endif }, refreshSocket(){ const isSocketOpen = $store.state.isSocketOpen;//websocket状态 const token = this.$storageManager.get('ty_TOKEN'); if (token&&(!isSocketOpen)) { websocket.initConnect();//如果有token且websocket不在线则重连websocket } }, requestPermissionListener(brand){ const tipsObj = {}; const permissionList = Object.keys(permisionTips); permissionList.forEach(key=>{ tipsObj[key] = this.$formatPermissionTips(permisionTips[key]) }) // console.log("注册全局权限监听:",tipsObj); setRequestPermissionTips(tipsObj);//设置权限目的提示 registerRequestPermissionTipsListener({ onRequest: (e) => { // console.log('onRequest',e) }, onConfirm: (e) => { // console.log('onConfirm,系统授权弹窗显示',e) }, onComplete: (e) => { // console.log('onComplete',e); // 华为手机在权限禁止之后,再次申请权限不会出现权限申请框。此时应该引导用户去系统设置开启此权限,不应该频繁申请。 if (brand.toLowerCase() == "huawei") { var tips = {} for (var k in tipsObj) { if (e[k] != "denied") { tips[k] = tipsObj[k] } } setRequestPermissionTips(tips) // 更新弹框提醒,防止华为手机不出现权限申请框时权限提醒框闪烁的情况 } const flag_BLUETOOTH_CONNECT = e.hasOwnProperty("android.permission.BLUETOOTH_CONNECT")&&e["android.permission.BLUETOOTH_CONNECT"]==='denied'; const flag_BLUETOOTH_SCAN = e.hasOwnProperty("android.permission.BLUETOOTH_SCAN")&&e["android.permission.BLUETOOTH_SCAN"]==='denied'; if(flag_BLUETOOTH_CONNECT||flag_BLUETOOTH_SCAN){ this.$showSettingModel("蓝牙权限已被拒绝,APP无法监听耳机连接状态,无法为您提供下一步音频测听服务,请前往设置中开启授权"); return } } }) } } } </script> <style lang="scss"> /* 注意要写在第一行,同时给style标签加入lang="scss"属性 */ [@import](/user/import) "@/uni_modules/uview-ui/index.scss"; </style> <style> /*每个页面公共css static/inconFont/iconfont.css*/ /* icon.css - 自定义图标库 */ [@import](/user/import) url("@/static/iconFont/iconfont.css"); /*每个页面公共css */ @font-face { font-family: 'alimamashuheiti'; src: url('/static/fonts/alimamashuheiti.ttf') format('truetype'); /* 根据实际情况调整路径和格式 */ } @font-face { font-family: 'alibabapuhuiti'; src: url('/static/fonts/alibabapuhuiti.ttf') format('truetype'); /* 根据实际情况调整路径和格式 */ } @font-face { font-family: 'siyuanheiti'; src: url('/static/fonts/SourceHanSansSC-Normal-2.otf') format('truetype'); /* 根据实际情况调整路径和格式 */ } .alimama{ font-family: 'alimamashuheiti', sans-serif; } .alibabapuhuiti{ font-family: 'alibabapuhuiti', sans-serif; } .siyuanheiti{ font-family: 'siyuanheiti', sans-serif; } </style>

问题已解决。运营上传错了包。重新上传正确的生产环境包就ok了。

针对您遇到的隐私合规问题,这通常是由于在用户同意隐私政策前,某些SDK或插件自动收集了设备信息(如OAID)导致的。以下是关键排查点:

  1. 检查第三方SDK初始化时机
    确保所有涉及数据采集的SDK(如广告、统计、推送等)在用户点击同意隐私政策后才进行初始化。常见的违规SDK包括穿山甲、腾讯广点通、友盟等。

  2. 配置原生插件延迟初始化
    App.vueonLaunch 中,通过条件判断控制插件调用:

    // 示例:在用户同意后再执行采集
    if (uni.getStorageSync('privacyAgreed')) {
        // 初始化SDK或调用原生插件
    }
回到顶部