uniapp 隐私协议如何配置和使用

在uniapp中如何配置和使用隐私协议?具体步骤是什么?需要哪些文件和配置?有没有官方推荐的实现方式或模板可以参考?

2 回复

在manifest.json中配置隐私协议弹窗,在App.vue中监听onNeedPrivacyAuthorization事件,调用uni.needPrivacyAuthorization()触发弹窗。用户同意后即可正常使用相关功能。


在 UniApp 中配置和使用隐私协议,主要涉及隐私政策弹窗的显示、用户同意状态管理,以及合规处理第三方 SDK 的初始化。以下是具体步骤和示例代码:

1. 配置隐私协议弹窗

  • manifest.json"app-plus" 节点下添加 privacy 配置:
    {
      "app-plus": {
        "privacy": {
          "prompt": "template", // 使用模板弹窗
          "template": {
            "title": "用户隐私协议",
            "message": "请仔细阅读并同意以下协议...",
            "buttonAccept": "同意",
            "buttonRefuse": "拒绝",
            "second": {
              "title": "再次确认",
              "message": "拒绝后将无法使用部分功能,是否继续?",
              "buttonAccept": "继续退出",
              "buttonRefuse": "再想想"
            }
          }
        }
      }
    }
    

2. 检测并显示隐私弹窗

  • App.vueonLaunch 中调用 API 触发弹窗:
    export default {
      onLaunch() {
        // 检测是否需要显示隐私协议
        uni.requirePrivacyAuthorize({
          success: () => {
            console.log('用户同意隐私协议');
            // 用户同意后,初始化第三方 SDK(如微信登录、统计等)
          },
          fail: () => {
            console.log('用户拒绝隐私协议');
            // 可根据业务逻辑处理(如退出应用)
          }
        });
      }
    };
    

3. 管理用户同意状态

  • 使用 uni.getSetting 检查授权状态,避免重复弹窗:
    uni.getPrivacySetting({
      success: (res) => {
        if (res.needAuthorization) {
          // 显示隐私协议弹窗
          uni.requirePrivacyAuthorize({ ... });
        } else {
          // 用户已同意,直接初始化功能
        }
      }
    });
    

4. 处理第三方 SDK 初始化

  • 在用户同意隐私协议后,再初始化涉及隐私的 SDK(如定位、推送):
    // 示例:用户同意后初始化微信登录
    if (res.needAuthorization === false) {
      uni.login({ provider: 'weixin' });
    }
    

注意事项:

  • 平台差异:仅 iOS 和部分 Android 系统强制要求配置隐私弹窗。
  • 内容规范:隐私协议内容需明确列出数据收集类型(如位置、设备信息)。
  • 拒绝处理:用户拒绝时,应限制相关功能,但避免直接闪退。

通过以上配置和代码,可确保 UniApp 应用符合隐私政策要求,提升审核通过率。

回到顶部