uni-app 启动时隐私政策授权问题:APP及SDK在用户同意隐私政策前,不可提前收集IMEI、OAID、IMSI、MAC、应用列表等信息
uni-app 启动时隐私政策授权问题:APP及SDK在用户同意隐私政策前,不可提前收集IMEI、OAID、IMSI、MAC、应用列表等信息
信息类别 | 信息内容 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Windows |
PC系统版本 | win10 |
HBuilderX | 正式 |
HBuilderX版本 | 3.4.7 |
手机系统 | Android |
手机系统版本 | Android 12 |
手机厂商 | 小米 |
手机机型 | Redmik30pro |
页面类型 | vue |
vue版本 | vue2 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
操作步骤:
按官方指导正常配置,正常云打包,且没加入插件
预期结果:
正常上架
实际结果:
因权限获取问题导致不能上架
bug描述:
APP上架,就算所有插件都不引用,打包,检测时还是会报:APP启动时,在用户授权同意隐私政策前,APP及SDK不可以提前收集和使用IMEI、OAID、IMSI、MAC、应用列表等信息;会导致app上不了商店,希望官方回复一下
现在 没有同意用户信息 他就自己获取权限么
上架小米商店,那边反馈就是未同意就获取权限问题,不知道是怎么回事
回复 2***@qq.com: 实际上是不是没有
请问解决了吗?我也遇到了这个问题
在开发 uni-app
应用时,确保在用户同意隐私政策前不收集敏感信息(如 IMEI、OAID、IMSI、MAC、应用列表等)是非常重要的。这不仅符合法律法规(如《个人信息保护法》和《网络安全法》),也是保护用户隐私的基本要求。
以下是一些处理 uni-app
启动时隐私政策授权问题的建议:
1. 延迟初始化 SDK
在用户同意隐私政策之前,避免初始化任何可能收集敏感信息的 SDK。可以通过以下方式实现:
- 在
App.vue
的onLaunch
生命周期中,检查用户是否已同意隐私政策。 - 如果未同意,则只加载必要的功能,待用户同意后再初始化相关 SDK。
// App.vue
export default {
onLaunch() {
const hasAgreed = uni.getStorageSync('hasAgreedToPrivacyPolicy');
if (!hasAgreed) {
// 显示隐私政策弹窗
this.showPrivacyPolicy();
} else {
// 用户已同意,初始化 SDK
this.initSDK();
}
},
methods: {
showPrivacyPolicy() {
uni.showModal({
title: '隐私政策',
content: '请阅读并同意我们的隐私政策',
success: (res) => {
if (res.confirm) {
uni.setStorageSync('hasAgreedToPrivacyPolicy', true);
this.initSDK();
} else {
// 用户不同意,退出应用或限制功能
uni.showToast({
title: '请同意隐私政策以继续使用',
icon: 'none'
});
}
}
});
},
initSDK() {
// 初始化 SDK 的逻辑
console.log('初始化 SDK');
}
}
};
2. 使用合规的 SDK
确保使用的第三方 SDK 支持延迟初始化,并且在用户同意隐私政策前不会收集任何敏感信息。可以查阅 SDK 的官方文档,确认其是否提供相关配置。
例如,某些 SDK 提供了 setPrivacyPolicyAgreed
方法,用于在用户同意隐私政策后再开始收集数据。
3. 隐藏敏感权限
在 manifest.json
中,避免在应用启动时申请敏感权限(如读取设备信息、获取应用列表等)。可以在用户同意隐私政策后,再动态申请这些权限。
{
"app-plus": {
"permissions": {
"request": {
"scope.userLocation": {
"desc": "需要获取您的位置信息"
}
}
}
}
}