如果用户首次拒绝访问ReactNative,请寻求许可

时间:2019-02-13 15:34:47

标签: javascript react-native ecmascript-6

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

  

从“ react-native”导入{PermissionsAndroid};

1 个答案:

答案 0 :(得分:1)

这是权限在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。因此,我知道用户何时从设置屏幕返回到应用程序,以便我可以在应用程序中执行任何适当的操作(例如再次检查权限,打开媒体库等)。