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

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

时间:2024-11-22 18:49:51浏览次数:3  
标签:插件 权限 申请 用户 uni 拦截 addPermisionInterceptor

目录

问题分析

解决方法

下载插件包: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 下初始化, 会导致拦截失败, 请在 onl oad onReady 中调用

<script>
    // 错误写法
    const recorderManager = uni.getRecorderManager();
    // 正确写法
    let recorderManager = null
    export default {
        onl oad() {
            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 插件市场

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

标签:插件,权限,申请,用户,uni,拦截,addPermisionInterceptor
From: https://blog.csdn.net/qq_66848092/article/details/143980485

相关文章

  • 基于微软云的学生账号申请及虚拟机应用
    基于微软云的学生账号申请及虚拟机应用狠狠的薅美资本主义的羊毛动机无需绑定付费方式每年100美元额度最重要的,位置在国外身为拥有.edu后缀邮箱的带学生(研究生也算学生),想要学习Linux知识但手头并没有合适的硬件去安装对应的操作系统,在Windows11上开WSL既消耗我本机......
  • Ftp搭建虚拟用户模式
    Ftp搭建虚拟用户模式一、CentOS1.安装vsftp以及相关依赖yum-yinstallvsftpd*pam*db4*·vsftpd:ftp软件·pam:认证模块·DB4:支持文件数据库关闭selinuxsetenforce0#暂时关闭sed-ri's#(SELINUX=)enforcing#\1disabled#'/etc/selinux/config#永久关闭grep^......
  • Abp-VNext用户权限管理系列文章08---skywalking集成与部署
    一、集成1、引入nuget包SkyAPM.Agent.AspNetCore2、增加环境变量ASPNETCORE_HOSTINGSTARTUPASSEMBLIES=SkyAPM.Agent.AspNetCore3、增加配置文件"SkyWalking":{"ServiceName":"order",//服务名"Namespace":"","Heade......
  • ABP-VNext 用户权限管理系统实战06---多租户集成
    一、集成1、引用安装包Volo.Abp.AspNetCore.MultiTenancy2、配置租户keyConfigure<AbpAspNetCoreMultiTenancyOptions>(options=>{options.TenantKey="BridgeTenantKey";});3、在代码中写入所有租户,当在也可以在配置文件或数据库中定义你的所有租户Con......
  • Linux基础-用户/用户组操作
    用户操作普通用户:安装系统时创建的用户,也可以由管理员来分配。最高管理员:root,Linux系统内置,当第一次使用root用户的时候,需要修改密码。修改最高管理员root用户的密码:sudopasswd关于用户、文件及权限的关系:用户对文件拥有的权限(读、写、执行、无权限)普通用户和最高管......
  • 【SpringSecurity安全】权限绕过漏洞
    一、springsecurity简介springsecurity的核心功能主要包括:认证(你是谁)授权(你能干什么)攻击防护(防止伪造身份)SpringSecurity和Apacheshiro一样,都是安全框架,负责整个系统的认证和授权。那有师傅就要问了,明明shiro之类的漏洞更多,他们凭什么叫安全框架?其实原因就是Spring......
  • 鸿蒙HarmonyOS NEXT开发:鸿蒙应用中图片上传流程解析,从图库中、用户拍照(拉起相机)获取照
    一、总体流程概述无论采用哪种方式上传图片,都需要先把用户选择的图片放到应用的沙箱中,再进行上传操作。不同方式的主要区别在于选择照片的形式。二、不同方式选择照片(一)拍照拿取照片代码实现constpickerResult:cameraPicker.PickerResult=awaitcameraPicker.pick(get......
  • 基于vue3的权限控制实现
    需求:不同角色的用户显示不同的菜单,且对页面的按钮也有是否对角色开发的权限服务端返回两个数据一个是菜单的权限列表,另外一个是拥有的按钮列表数据,如下: 动态加载菜单/**routerInfo:动态路由hasRoutePermission:用户拥有的路由权限*/constfilterDeepDynamic......
  • 集运企业如何利用终端购物用户价值链提升利润率
    跨境物流行业作为一个大行业小公司的聚集地,竞争异常激烈。集运企业要想在这片红海中脱颖而出,提升单量和利润率,就必须寻找新的增长点,拓展业务范围。在这个过程中,利用好集运终端购物用户的价值链,成为了许多企业关注的焦点。集运企业的核心价值在于为客户提供跨境物流服务,但随着......
  • 有个数组{1,2,3,4,5},可以将该数组进行缩减,提示用户是否继续缩减,每次缩减最后的那个元素,当
    1importjava.util.Scanner;2publicclassarray03{3publicstaticvoidmain(String[]args){4ScannermyScanner=newScanner(System.in);56789int[]arr={1,2,3,4,5};101112......