uni-app 隐私未授权前获取了隐私信息
uni-app 隐私未授权前获取了隐私信息
信息类别 | 详情 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Windows |
PC版本号 | 19043.1023 |
HBuilderX | 正式 |
HBuilderX版本 | 4.08 |
手机系统 | Android |
手机系统版本 | Android 13 |
手机厂商 | 小米 |
手机机型 | 未知 |
页面类型 | vue |
vue版本 | vue2 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
示例代码:
{
"version" : "1.1.2",
"prompt" : "template",
"title" : "服务协议和隐私政策",
"message" : " 请你务必审慎阅读、充分理解“服务协议”和“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。<br/> 你可阅读<a href=\"https://m.ylzhaopin.com/news/16\">《服务协议》</a>和<a href=\"https://m.ylzhaopin.com/news/281512\">《隐私政策》</a>了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。",
"buttonAccept" : "同意并接受",
"buttonRefuse" : "暂不同意",
"hrefLoader" : "system",
"second" : {
"title" : "确认提示",
"message" : "",
"buttonAccept" : "同意并继续",
"buttonRefuse" : "退出应用"
},
"styles" : {
"backgroundColor" : "#ffffff",
"borderRadius" : "5px",
"title" : {
"color" : "#333333"
},
"buttonAccept" : {
"color" : "#e53030"
},
"buttonRefuse" : {
"color" : "#333333"
}
},
"disagreeMode" : {
"support" : true
}
}
操作步骤:
- 用的原生隐私框,小米提交后报未通过
预期结果:
- 通过
实际结果:
- 通过
bug描述:
9 回复
你是隐私政策里没写关于获取oaid的声明吧
主要的问题在于授权前行为
再补充一下,不清楚是不是这个问题
之前一直是用的template模式正常过审,上一版改成了none所以没过审
这一版改回来template就这样了
不确定的话,就找小米的客服,他们客服很好找的,会告诉原因的,,你这个最多就两种可能,一种是在隐私政策里没提到获取oaid的声明,另外一种就是在隐私政策框弹出前获取了oaid,在app,vue里可以看看,有没有plus.xxx什么的api
回复 套马杆的套子: 隐私政策框弹出前就会执行app.vue吗?
还有个问题,pixel手机为什么会弹出这个呢?
在处理uni-app中的隐私信息获取问题时,确保应用遵循隐私政策和相关法规至关重要。如果应用在用户授权前就获取了隐私信息,这通常是不合规的,并且可能会导致用户隐私泄露或法律纠纷。因此,以下代码案例将展示如何在用户授权后安全地获取隐私信息,而不是在授权前获取。
1. 请求用户授权
在uni-app中,你可以使用uni.authorize
或相应的API请求用户授权。以下是一个请求用户位置信息的示例:
uni.authorize({
scope: 'scope.userLocation',
success: function () {
console.log('用户已授权获取位置信息');
// 获取位置信息
uni.getLocation({
type: 'gcj02', // 返回可以用于wx.openLocation的经纬度
success: function (res) {
console.log('位置信息:', res);
},
fail: function (err) {
console.error('获取位置信息失败:', err);
}
});
},
fail: function () {
console.log('用户拒绝授权获取位置信息');
}
});
2. 检查授权状态
在尝试获取隐私信息之前,你可以使用uni.getSetting
检查用户的授权状态:
uni.getSetting({
success: function (res) {
if (res.authSetting['scope.userLocation']) {
// 用户已授权
uni.getLocation({
type: 'gcj02',
success: function (res) {
console.log('位置信息:', res);
},
fail: function (err) {
console.error('获取位置信息失败:', err);
}
});
} else {
// 用户未授权,请求授权
uni.authorize({
scope: 'scope.userLocation',
success: function () {
// 重新尝试获取位置信息
uni.getLocation({...});
},
fail: function () {
console.log('用户拒绝授权');
}
});
}
}
});
3. 注意事项
- 合规性:确保你的应用遵循相关隐私政策和法规,如GDPR、CCPA等。
- 用户提示:在请求授权前,清晰地向用户说明为何需要这些信息,并尊重用户的选择。
- 错误处理:处理用户拒绝授权或授权失败的情况,避免应用崩溃或提供不完整的功能。
- 定期更新:随着隐私政策和API的更新,定期检查和更新你的代码以确保合规性。
通过上述代码案例,你可以在用户授权后安全地获取隐私信息,从而遵守隐私政策和相关法规。