uni-app如何配置App的权限说明

雨墨吖_3941

雨墨吖_3941

2026-09-04

253人浏览

原创

Android权限必须用全限定名字符串数组声明,如android.permission.CAMERA;iOS需在plist中配置NSLocationWhenInUseUsageDescription等字段;各平台权限文案来源不同,混用将导致审核失败或用户困惑。

uni-app如何配置app的权限说明

manifest.json里Android权限必须用全限定名数组

不配对就真机静默失败,不是报错而是“调了等于没调”。permissions 字段只认字符串数组,不能是对象、不能简写、不能漏前缀。

  • android.permission.CAMERA ✅ 正确;CAMERA、camera、"CAMERA" ❌ 全部无效
  • android.permission.ACCESS_FINE_LOCATION ✅;ACCESS_FINE_LOCATION 或 location ❌
  • Android 10+ 还要额外注意:READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE 必须同时声明,否则文件读写在部分机型直接返回空数组或拒绝访问
  • 可视化勾选只是生成数组的快捷方式,改完必须重新「发行」或「云打包」,热更新不生效

App端权限说明不能靠uni.authorize的desc字段

App 端(Android/iOS)的权限弹窗文案不由 scope.userLocation.desc 控制,那个字段只对微信小程序生效。App 端真正起作用的是 manifest.json 里平台专属配置。

  • Android:权限说明藏在 app-plus.distribute.android.permissions 的 XML 字符串里,但实际不显示——系统弹窗文案由系统 ROM 决定,你只能通过 plus.android.requestPermissions 调用时传入中文提示语(仅部分厂商支持)
  • iOS:必须在 app-plus.distribute.ios.plist 中填写 NSLocationWhenInUseUsageDescription 或 NSLocationAlwaysAndWhenInUseUsageDescription,值为中文,且会被系统直接用于弹窗
  • 别在 mp-weixin.permission.scope.userLocation.desc 里写 iOS/Android 的说明,它对 App 端完全无影响

用户看到的权限文案其实在三个地方分别控制

同一个“定位”功能,在不同平台、不同触发时机,文案来源完全不同,混用就会导致审核被拒或用户困惑。

uni-app
uni-app

uni-app 是基于 Vue 的跨端开发框架,适合开发 H5、App、小程序、鸿蒙和多端业务应用。

下载
  • 微信小程序弹窗文案 → 来自 mp-weixin.permission.scope.userLocation.desc,必须具体、不可模板化,如“用于匹配附近3公里内的快递柜”
  • iOS 首次定位弹窗 → 来自 app-plus.distribute.ios.plist.NSLocationWhenInUseUsageDescription,必须和实际功能一致,否则苹果审核不通过
  • Android 启动后首次 requestPermissions 弹窗 → 文案由系统决定,你无法干预;但可在调用前用自定义弹窗说明用途(合规必需),例如:“开启定位后,才能为您推荐附近门店”
  • 华为/小米等厂商应用市场审核时,会比对 manifest 中 permissionLocation.prompt 字段(如有)与实际业务是否一致,这个字段不是标准,但建议填

别把权限说明当摆设,它直接影响过审和用户点击率

很多团队只填了权限,却没认真写说明,结果被 vivo、OPPO 卡在初审——不是功能不行,是文案太模糊。

  • “用于提升用户体验” ❌ 审核必拒
  • “获取位置信息以便展示附近服务” ✅ 可过,但最好再加一句:“您可随时在系统设置中关闭”
  • 涉及通讯录、相册、录音等高危权限,必须在自定义引导页明确说明用途,并提供隐私政策链接
  • Android 端若在 app-plus.distribute.android 下写了 permissionLocation: { prompt: "用于附近服务推荐" },部分厂商市场会提取该字段做合规校验

最易被忽略的一点:iOS 的 NSLocationAlwaysAndWhenInUseUsageDescription 和 NSLocationWhenInUseUsageDescription 是互斥的,用了后者就不能在后台持续定位;如果业务真需要后台定位,必须申请苹果特殊权限,不能只改 manifest。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2763

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

6003

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

6950

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

6718

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

963

5

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

2026.10.28

80

16

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

2026.10.28

60

15

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

2026.10.28

220

10

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

140

11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
uni-app从入门到实战教程
uni-app从入门到实战教程

共0课时 | 0人学习

uni-app x harmony开发指南
uni-app x harmony开发指南

共0课时 | 0人学习

uni-app鸿蒙运行和发行
uni-app鸿蒙运行和发行

共0课时 | 0人学习