uni-app 使用template的android权限确认框后应用宝审核不通过

uni-app 使用template的android权限确认框后应用宝审核不通过

操作步骤:

  • 上架应用宝

预期结果:

  • 成功上架

实际结果:

  • 未上架

bug描述:

我的APP更新,华为,VIVO,小米、百度、荣耀都通过了,只有应用宝提示“APP以隐私政策弹窗的形式向用户明示收集使用规则,未经用户同意,存在收集IMEI、设备MAC地址和软件安装列表、通讯录和短信的行为”被拒了。请问这是什么情况,应用宝检测错了还是其他什么问题,用的是template模式的隐私框,下方是模板,烦请帮忙看看,谢谢

```json
{
  "version": "1",
  "prompt": "template",
  "title": "服务协议和隐私政策",
  "message": "  请你务必审慎阅读、充分理解“服务协议”和“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。<br/>  你可阅读《服务协议》和《隐私政策》了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。",
  "buttonAccept": "同意并接受",
  "buttonRefuse": "暂不同意",
  "hrefLoader": "system",
  "backToExit": "false",
  "second": {
    "title": "确认提示",
    "message": "  进入应用前,你需先同意《服务协议》和《隐私政策》,否则将退出应用。",
    "buttonAccept": "同意并继续",
    "buttonRefuse": "退出应用"
  },
  "disagreeMode": {
    "support": false,
    "loadNativePlugins": false,
    "visitorEntry": true,
    "showAlways": true
  },
  "styles": {
    "backgroundColor": "#f2f2f2",
    "borderRadius": "5px",
    "title": {
      "color": "#333"
    },
    "buttonAccept": {
      "color": "#fe8008"
    },
    "buttonRefuse": {
      "color": "#00ffff"
    },
    "buttonVisitor": {
      "color": "#00ffff"
    }
  }
}

提示的调用堆栈如下:

2c88c!/data/data/com.aa.android/files/.2/lib/6.1.1/-1605547569/arm64-v8a/libweapon611.so! 2cb2c!/data/data/com.aa.android/files/.2/lib/6.1.1/-1605547569/arm64-v8a/libweapon611.so! 34ba8!/data/data/com.aa.android/files/.2/lib/6.1.1/-1605547569/arm64-v8a/libweapon611.so! 5301f0!/system/lib64/libart.so! 52744c!/system/lib64/libart.so! b50c0!/system/lib64/libart.so!_ZN3art9ArtMethod6InvokeEPNS_6ThreadEPjjPNS_6JValueEPKc 276d10!/system/lib64/libart.so!_ZN3art11interpreter34ArtInterpreterToCompiledCodeBridgeEPNS_6ThreadEPNS_9ArtMethodEPNS_11ShadowFrameEtPNS_6JValueE 271304!/system/lib64/libart.so!_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE 5105b0!/system/lib64/libart.so!MterpInvokeStatic 519114!/system/lib64/libart.so!ExecuteMterpImpl 251474!/system/lib64/libart.so! 257040!/system/lib64/libart.so!_ZN3art11interpreter33ArtInterpreterToInterpreterBridgeEPNS_6ThreadEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameEPNS_6JValueE 2712e4!/system/lib64/libart.so!_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE 5105b0!/system/lib64/libart.so!MterpInvokeStatic 519114!/system/lib64/libart.so!ExecuteMterpImpl 251474!/system/lib64/libart.so!


更多关于uni-app 使用template的android权限确认框后应用宝审核不通过的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

dcloud的技术有没有能回答的?这个是应用宝误测了还是什么其他原因呢,请帮忙看一下

更多关于uni-app 使用template的android权限确认框后应用宝审核不通过的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在使用 uni-app 开发应用时,如果你使用了 template 中的 Android 权限确认框(例如通过 uni.authorizeuni.requestAuthorize 请求权限),但应用宝审核不通过,可能是因为以下原因:

1. 权限描述不清晰或缺失

  • 应用宝审核要求应用在请求权限时,必须提供清晰的权限描述,告知用户为什么需要这些权限。
  • 如果你在 AndroidManifest.xml 中声明了权限,但没有在应用中提供相应的权限描述,审核可能会不通过。

解决方案:

  • AndroidManifest.xml 中,确保为每个权限添加 <uses-permission> 声明。
  • 在应用中,使用 uni.authorizeuni.requestAuthorize 时,提供清晰的权限描述。例如:
    uni.authorize({
      scope: 'scope.userLocation',
      success() {
        console.log('权限授权成功');
      },
      fail() {
        console.log('权限授权失败');
      }
    });
    
  • pages.jsonmanifest.json 中,确保为每个权限添加描述信息。

2. 权限请求时机不当

  • 应用宝审核要求权限请求必须在用户明确需要使用相关功能时触发,而不能在应用启动时立即请求所有权限。
  • 如果你在应用启动时就请求了敏感权限(如相机、位置等),审核可能会不通过。

解决方案:

  • 确保权限请求在用户实际需要使用相关功能时触发。例如,当用户点击“拍照”按钮时再请求相机权限。
  • 避免在应用启动时立即请求所有权限。

3. 权限使用场景不明确

  • 应用宝审核要求应用必须明确说明每个权限的使用场景。如果权限的使用场景不明确,审核可能会不通过。

解决方案:

  • 在应用的隐私政策或权限说明中,明确列出每个权限的使用场景。例如,说明为什么需要访问位置、相机等权限。
  • 在应用内提供权限说明页面,告知用户每个权限的具体用途。

4. 未正确处理权限拒绝

  • 如果用户在权限请求时选择了“拒绝”,应用必须能够正确处理这种情况,而不能崩溃或无法使用。
  • 如果你没有处理权限拒绝的情况,审核可能会不通过。

解决方案:

  • uni.authorizeuni.requestAuthorizefail 回调中,处理权限拒绝的情况。例如:
    uni.authorize({
      scope: 'scope.userLocation',
      success() {
        console.log('权限授权成功');
      },
      fail() {
        console.log('权限授权失败,提示用户');
        uni.showModal({
          title: '提示',
          content: '需要位置权限才能使用该功能',
          success(res) {
            if (res.confirm) {
              // 用户点击确认,引导用户去设置页面开启权限
              uni.openSetting();
            }
          }
        });
      }
    });
回到顶部