首页 > 解决方案 > 如何在安装期间/在应用程序启动之前为 React Native 应用程序请求权限?

问题描述

我希望用户在安装期间/应用程序开始之前授予权限,而不是在应用程序运行时被提示。目前,我在我的应用程序的 Android 版本上请求粗略位置和麦克风访问权限,并在应用程序的 IOS 版本上请求 BLE 和麦克风访问权限。

标签: react-nativepermissionsreact-native-androidreact-native-ios

解决方案


这是不可能的,根据 Android 文档,只有当 android 版本低于 Marshmallow(即 < SDK 23)时,您才能在安装时请求权限。如果 android 版本是 marshmallow 或更高版本,则会在运行时询问权限,您无法更改它。

如果设备运行 Android 6.0(API 级别 23)或更高版本,并且应用的 targetSdkVersion 为 23 或更高版本,则应用在运行时向用户请求权限。用户可以随时撤销权限,所以应用每次访问受权限保护的API时都需要检查自己是否拥有权限。有关在应用程序中请求权限的更多信息,请参阅使用系统权限培训指南。

如果设备运行Android 5.1.1(API级别22)或更低,或者应用的targetSdkVersion为22或更低,系统会在用户安装应用时要求用户授予权限。如果您向应用程序的更新版本添加新权限,系统会在用户更新应用程序时要求用户授予该权限。一旦用户安装了应用程序,他们可以撤销权限的唯一方法是卸载应用程序。

https://developer.android.com/guide/topics/permissions/requesting.html

对于 iOS,在运行时也会询问权限,就像 iOS 9 以来的情况一样。我不确定 iOS 9 之前的流程是什么。


推荐阅读