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

embedded/2024/11/27 1:24:03/

目录

问题分析

解决方法

下载插件包: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文件中添加以下代码

javascript"> 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 中调用

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

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

javascript">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.ppmy.cn/embedded/140777.html

相关文章

Android开发教程案例源码分享-匹配动画多个头像飘动效果

Android开发教程案例源码分享-匹配动画多个头像飘动效果 匹配往往出现多个头像飘动&#xff0c;吸引人点击&#xff0c;有时出现的位置还不固定 一、思路&#xff1a; 用MotionLayout 二、效果图&#xff1a; 看视频更直观点&#xff1a; Android开发教程案例源码分享-匹配…

Redis Key 命名规范文档

开发过程中为确保 Redis 键名的一致性、可读性和易维护性&#xff0c;本规范旨在指导开发团队在使用 Redis 时设计合理的键名格式。 1. 命名格式 采用 模块:子模块:业务描述:标识 的分层格式&#xff0c;明确数据来源和用途。 层次清晰&#xff1a;从全局到具体逐步细化。唯一…

如何修复WordPress .htaccess文件

.htaccess文件是一个隐藏的配置文件&#xff0c;对WordPress网站的运行至关重要。它本质上是Apache Web服务器的指令集&#xff0c;而Apache Web服务器通常由你的WordPress主机运行。其核心功能之一是为你的博客文章和页面创建用户友好的URL。你还可以通过.htaccess文件来实现安…

FPGA经验谈系列文章——9、块储存器的高效使用

前言 每个7系列的FPGA都包含多个36Kb容量的块存储器,俗称BlockRAM。一个BlockRAM是36Kb,它能够拆分成独立的两个18Kb,因此最小的使用单位就是18Kb。如果只想使用1Kb怎么办?不好意思,也得占用半个块存储资源18Kb。那如果使用了19Kb的话,那么就得使用一个完整的36Kb的Block…

PyTorch2

Tensor的常见操作&#xff1a; 获取元素值&#xff1a; 注意&#xff1a; 和Tensor的维度没有关系&#xff0c;都可以取出来&#xff01; 如果有多个元素则报错&#xff1b; import torch def test002():data torch.tensor([18])print(data.item())pass if __name__ &qu…

[极客大挑战 2019]BabySQL--详细解析

信息搜集 进入界面&#xff1a; 输入用户名为admin&#xff0c;密码随便输一个&#xff1a; 发现是GET传参&#xff0c;有username和password两个传参点。 我们测试一下password点位能不能注入&#xff1a; 单引号闭合报错&#xff0c;根据报错信息&#xff0c;我们可以判断…

深度学习——3种常见的Transformer位置编码【sin/cos、基于频率的二维位置编码(2D Frequency Embeddings)、RoPE】

&#x1f33a;历史文章列表&#x1f33a; 深度学习——优化算法、激活函数、归一化、正则化深度学习——权重初始化、评估指标、梯度消失和梯度爆炸深度学习——前向传播与反向传播、神经网络&#xff08;前馈神经网络与反馈神经网络&#xff09;、常见算法概要汇总万字长文解读…

基于 DRNN 神经网络整定的 PID 解耦控制

1. 基本原理 DRNN&#xff08;Dynamic Recurrent Neural Network, 动态递归神经网络&#xff09;是一种带有时间反馈的神经网络&#xff0c;能够建模系统的动态特性&#xff0c;适用于非线性、多变量、时变系统的控制。结合 PID 解耦控制&#xff0c;利用 DRNN 进行动态建模和…