当前位置: 首页 > news >正文

应用商店双弹窗“APP在向用户申请权限时未同步告知用户申请此权限的理由”驳回uni-app应用上线的解决方法

目录

问题分析

解决方法

下载插件包:x-perm-apply-instr

将插件包导入进你项目中的uni_modules文件夹

在项目中的main.js文件中添加以下代码

完成

其它注意事项

addPermisionInterceptor 添加 uniApi 调用拦截

removePermisionInterceptor 移除 uniApi 调用拦截


在uniapp上线应用商店时,遇到了一个被驳回的问题,上面显示的是:APP在向用户申请权限时未同步告知用户申请此权限的理由。下面记录一下我解决的方法。

问题分析

应用商店驳回的理由,其实说白了就是你应用获取权限的时候需要再加一个弹窗,用来同步提示用户获取权限的目的,如下图所示:

 

解决方法

根据客服说的双弹窗形式的整改方式,我们可以使用插件进行优化

下载插件包:x-perm-apply-instr

    下载文章顶部的插件压缩包,并完成解压。

将插件包导入进你项目中的uni_modules文件夹

    导入uni_modules规范插件需要使用 3.1.0 以上版本的 HBuilderX

在项目中的main.js文件中添加以下代码

 import { addPermisionInterceptor, removePermisionInterceptor } from '@/uni_modules/x-perm-apply-instr/js_sdk/index.js'addPermisionInterceptor('chooseImage', '为了修改个人头像和发布信息图片视频等, 我们需要申请您设备的相机和存储权限')addPermisionInterceptor('chooseVideo', '为了发布信息图片视频等, 我们需要申请您设备的相机和存储权限')addPermisionInterceptor('saveImageToPhotosAlbum', '为了保存推广海报到手机相册, 我们需要申请您设备的存储权限')addPermisionInterceptor('getLocation', '为了根据您的位置展示信息, 我们需要申请您设备的位置权限')addPermisionInterceptor('makePhoneCall', '为了联系客服/用户/咨询等, 我们需要申请您设备的拨打电话权限')addPermisionInterceptor('getRecorderManager', '为了使用语言消息功能等, 我们需要申请您设备的麦克风权限')addPermisionInterceptor('startLocationUpdate', '为了根据您的位置展示信息, 我们需要申请您设备的位置权限')addPermisionInterceptor('scanCode', '为了识别二维码信息, 我们需要申请您设备的相机权限')

完成

    至此,你的项目已经解决了这个问题,你可以在Hbuilder中使用真机测试,或者使用打包下载测试的方法进行测试

其它注意事项

addPermisionInterceptor 添加 uniApi 调用拦截

位置类型描述可选值
0String要拦截的 uniApi 名称scanCode、chooseImage、chooseVideo、saveImageToPhotosAlbum、saveVideoToPhotosAlbum、getLocation、startLocationUpdate、makePhoneCall、getRecorderManager
1String申请权限说明信息自定义文本
2Boolean只询问一次, 用户不同意申请或拒绝权限将无法使用 uniApi, 如果要继续使用 Api 先用 removePermisionInterceptor 函数移除拦截再调用 Apitrue, false

removePermisionInterceptor 移除 uniApi 调用拦截

位置类型描述可选值
0String要移除拦截的 uniApi 名称同上

注意, 如果需要拦截 getRecorderManager , 在使用时不要直接在 script 下初始化, 会导致拦截失败, 请在 onLoad onReady 中调用

<script>// 错误写法const recorderManager = uni.getRecorderManager();// 正确写法let recorderManager = nullexport default {onLoad() {recorderManager = uni.getRecorderManager();}}
</script>

手动控制权限说明弹窗(在不能触发拦截的情况下使用)

import { popup } from '@/uni_modules/x-perm-apply-instr/js_sdk/native_popup.js'
// 显示
popup.show({title: '权限申请说明',content: '为了xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
})
// 关闭
popup.close()

如果您想了解更多,请您进入DCLOUD插件官网进行浏览:DCloud 插件市场

注,本文插件地址来源于:权限申请说明、权限申请的使用目的、华为上架、小米上架(无需改动代码、全局拦截) - DCloud 插件市场

如果文章对您有帮助,还请您点赞支持
感谢您的阅读,欢迎您在评论区留言指正分享

http://www.lryc.cn/news/490770.html

相关文章:

  • 第 32 章 - Go语言 部署与运维
  • 噪杂环境离线语音通断器效果展示
  • 【django】扩展
  • 逆向破解识别基础
  • MFC 下拉框显示问题和控件自适应窗口大小
  • Docker 的存储驱动及其优缺点
  • 单片机系统的性能指标有哪些?
  • 波点音乐自动点击
  • HTTP 消息结构
  • ESP32学习笔记_Bluetooth(1)——蓝牙技术与 BLE 通信机制简介
  • C0034.在Ubuntu中安装的Qt路径
  • jdbc学习——SQL注入
  • JavaEE-线程安全专题
  • Android 设备使用 Wireshark 工具进行网络抓包
  • 物联网无线局域网WiFi开发(一):WiFi智能家居解决方案
  • GMAN解读(论文+代码)
  • 速盾:ddos防御手段哪种比较好?高防cdn怎么样?
  • Spring:AOP切入点表达式
  • 《文件操作》
  • python特殊字符序列
  • 卷积神经网络(CNN)中的批量归一化层(Batch Normalization Layer)
  • LLaMA-Mesh: Unifying 3D Mesh Generation with Language Models 论文解读
  • 【ESP32CAM+Android+C#上位机】ESP32-CAM在STA或AP模式下基于UDP与手机APP或C#上位机进行视频流/图像传输
  • ESP-KeyBoard:基于 ESP32-S3 的三模客制化机械键盘
  • 28.UE5游戏框架,事件分发器,蓝图接口
  • Puppeteer 和 Cheerio 在 Node.js 中的应用
  • Unity2D 关于N方向俯视角 中 角色移动朝向的问题
  • pytorch 和tensorflow loss.item()` 只能用于只有一个元素的张量. 防止显存爆炸
  • 链表刷题|判断回文结构
  • 海盗王集成网关和商城服务端功能golang版