uni-app 隐私权限问题:APP重新运行后不能再次弹窗申请权限,需间隔48小时才能再次向用户申请

uni-app 隐私权限问题:APP重新运行后不能再次弹窗申请权限,需间隔48小时才能再次向用户申请

操作步骤:

1

预期结果:

1

实际结果:

1

bug描述:

腾讯应用宝上架审核:
经检测您的APP存在隐私不合规问题,建议您按如下方式整改: APP在用户明确拒绝申请权限(包括但不限于电话、通讯录、定位、短信、录音、相机、存储、日历等)时,APP重新运行,不能再次弹窗申请权限,必须间隔48小时以后才能再次向用户申请。 (因隐私检测系统升级,暂不影响上架,建议您及时整改;以上问题如有疑问请联系客服QQ:800013811)
APP重新运行,不能再次弹窗申请权限,必须间隔48小时以后才能再次向用户申请。 这个没处理

开发环境 版本号 项目创建方式
Mac 10.14.6 HBuilderX
Android Android 11

更多关于uni-app 隐私权限问题:APP重新运行后不能再次弹窗申请权限,需间隔48小时才能再次向用户申请的实战教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

解决了吗

更多关于uni-app 隐私权限问题:APP重新运行后不能再次弹窗申请权限,需间隔48小时才能再次向用户申请的实战教程也可以访问 https://www.itying.com/category-93-b0.html


同样遇到 频繁索要权限

APP运行中向用户索取电话、通讯录、定位、短信、录音、相机、存储、日历等权限,用户拒绝后,重新运行时,不得向用户频繁弹窗申请开启权限,影响用户正常使用;

应用启动检测是都申请了那些权限 拒绝后再启动看那个权限又申请了 然后发出来看看

遇到同样的问题,头疼

这是一个常见的隐私合规问题,主要涉及权限申请策略的调整。

在uni-app中,当用户拒绝权限后,需要实现以下逻辑:

  1. 在应用启动时检测权限状态
  2. 如果权限被拒绝,记录拒绝时间戳
  3. 再次申请前检查时间间隔是否超过48小时

实现方案:

// 在App.vue的onLaunch中处理
onLaunch: function() {
  this.checkPermissionInterval()
},
methods: {
  checkPermissionInterval() {
    const lastRejectTime = uni.getStorageSync('permission_reject_time')
    const currentTime = Date.now()
    
    // 如果从未拒绝过,或者已超过48小时,可以申请权限
    if (!lastRejectTime || (currentTime - lastRejectTime) > 48 * 60 * 60 * 1000) {
      this.requestPermissions()
    }
  },
  
  requestPermissions() {
    // 使用uni.authorize或plus.android.requestPermissions申请权限
    uni.authorize({
      scope: 'scope.record',
      success: () => {
        // 权限申请成功
      },
      fail: (err) => {
        if (err.errMsg.includes('auth deny')) {
          // 记录拒绝时间
          uni.setStorageSync('permission_reject_time', Date.now())
        }
      }
    })
  }
}
回到顶部