Skip to content

小游戏隐私权限自查及开发指引

自查内容

确认游戏中是否一定需要获取并使用以下权限:

  1. 若所有权限都不需要使用:游戏进入时可直接不出隐私协议弹窗

  2. 有需要使用的权限:列明所需的权限及该权限的用途(该项需要研发给到渠道运营,帮助其填写vivo开平上的隐私协议内容)

说明: 1)如果评估该项权限是非必要的,建议不要进行申请,从而可以实现完全不出隐私弹窗的效果

2)如果该项权限是必要的,建议在实际需要该项权限时再发起请求,不要在游戏一开始就统一请求,会影响游客模式效率

说明:快游戏联盟的包适用“联盟标准接口”这一栏;vivo渠道的包适用“原有接口”这一栏

用户信息类型联盟标准接口原有接
昵称、头像qg.login (未隐私授权仅返回token)qg.getAccountInfo、qg.getUserInfo
位置信息qg.getLocation、qg.subscribeLocation、qg.unsubscribeLocationqg.getLocation、qg.subscribeLocation、qg.unsubscribeLocation
选中的照片或视频信息qg.chooseImageqg.takePhoto、qg.pickImage
麦克风qg.startRecordRecorderManager.start
相册(仅写入)权限qg.saveImageToPhotosAlbumqg.saveToPhotoAlbum
加速传感器qg.startAccelerometer、qg.stopAccelerometer、qg.onAccelerometerChange、qg.offAccelerometerChangeqg.subscribeAccelerometer、qg.unsubscribeAccelerometer
磁场传感器(罗盘)qg.startCompass、qg.stopCompass、qg.onCompassChange、qg.offCompassChangeqg.subscribeCompass、qg.unsubscribeCompass
方向传感器qg.startDevicemotionListening、qg.stopDevicemotionListening、qg.onDeviceMotionChange、qg.offDeviceMotionChange
陀螺仪传感器qg.startGyroscope、qg.stopGyroscope、qg.offGyroscopeChange、qg.onGyroscopeChange
剪切板qg.setClipboardData、qg.getClipboardDataqg.setClipboardData、qg.getClipboardData

自查工具

调试器新增 隐私策略本地开发测试配置

为方便cp开发调试隐私策略效果,调试器配合提供新的配置入口,如下所示。开发者根据实际配置信息,在调试器上选择进行对应状态策略选择,再开启调试。

默认关闭打开开关后出现配置弹框 对应状态1对应状态2对应状态3
altaltaltaltalt

当选择对应状态1

保持现有逻辑,弹出自有隐私弹框;

当选择对应状态2

运行过程中,检测到超限收集隐私信息,则会出现toast提醒,则表示超限收集,需要整改,或做好兼容措施保证游戏正常运行。如下图所示:

net_monitor

当选择对应状态3

运行过程中,检测到超限收集隐私信息,则会出现toast提醒,需要整改,或做好兼容措施保证游戏正常运行。图示效果同上。

开发指引

C端隐私交互

该弹窗由平台统一实现,点击文字链接后即可查看渠道运营在vivo开平上完成的隐私协议内容。一定要记得把游戏中自己开发的隐私协议弹窗相关的代码逻辑删除掉,不然用户侧会弹出两个隐私协议弹窗。

说明:需要渠道运营先按前文说明在vivo开平进行了隐私协议的配置后,才可以看到以下弹窗。

net_monitor

若使用到隐私政策声明的接口

需要兼容用户拒绝授权信息的情况,避免报错;如:getAccountInfo

js
  if (qg.getAccountInfo){
      qg.getAccountInfo({
           appKey: "24030c****dc58a8df8785",
           appSecret:"94dc184*****7242c633350e4",
           success(res) {
               console.log("getAccountInfo success", res)
           },
           fail(res) {
             console.log("getAccountInfo fail", res.errCode, res.errMsg)
             if (res.errCode == 700) {
               //todo
             } else if (res.errCode == 701) {
               //todo
             }
           }
          })
  }

错误码说明

errCodeerrMsg错误原因
700permission not agreed权限被拒绝
701permission exceeded未在开平声明该项用户隐私信息类型的使用

注意:关于qg.login的接口,如果仅为了获取token来换最终的openId,则不需要声明在隐私权限中,token默认返回。

示例:

js
  qg.login({
    success: function (res) {
      var data = JSON.stringify(res);
      // token会直接返回给cp
      console.log(data.token);
    },
    fail: function (res) {
      console.log(JSON.stringify(res));
    },
  });

通过登录token获取用户信息 游戏中调用登录接口后,小游戏引擎会返回一个Token给CP,CP可以调用此接口获取用户信息。 注:未在隐私协议中的声明获取【图像、昵称】信息类型的,cp根据token仅获取到openId,图像昵称等信息则不会返回