uni-app 隐私未授权前获取了隐私信息

发布于 1周前 作者 bupafengyu 来自 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描述:

隐私Bug.zip


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的更新,定期检查和更新你的代码以确保合规性。

通过上述代码案例,你可以在用户授权后安全地获取隐私信息,从而遵守隐私政策和相关法规。

回到顶部