如果用户第一次拒绝访问,请请求许可 ReactNative

imc*_*cze 5 javascript ecmascript-6 react-native

我的应用程序的问题是,当用户第一次拒绝访问媒体库时,当他回来并尝试从手机上传照片时,设备不会再次询问您是否要允许此应用程序进入您的媒体库,此问题仅在 IOS 中,因为在 Android 中我可以通过以下方式修复它:

从'react-native'导入{PermissionsAndroid};

And*_*rew 10

这就是权限在 iOS 中的工作方式,一旦被拒绝,就无法真正让应用程序再次请求权限。让用户启用权限的唯一方法是将他们定向到其应用程序的设置并手动将其打开。

我执行以下操作以获得权限。

  1. 当用户点击媒体库按钮时,检查权限状态。
  2. 如果尚未请求权限 -> 请求权限
  3. 如果先前已请求权限,则显示警报并告诉用户转到设置页面。
  4. 如果许可已被批准显示媒体库

react-native-permissions用来检查和请求我在 iOS 中需要的权限。https://github.com/yonahforst/react-native-permissions

然后我用react-native-open-settings打开设置页面。https://github.com/lunarmayor/react-native-open-settings

这两个都需要修改本机代码,所以它们在 Expo

我还在我的应用程序中使用 Redux(您也许可以使用AsyncStorage)并跟踪AppState。所以我知道用户何时从设置屏幕返回应用程序,以便我可以在应用程序中执行任何适当的操作(例如再次检查权限、打开媒体库等)。