Проблема для моего приложения заключается в том, что когда пользователь отказывает в доступе к медиатеке в первый раз, а затем, когда он возвращается и пытается загрузить фотографию с телефона, устройство больше не спрашивает, вы хотите разрешить этому приложению войти в ваши медиа библиотека, эта проблема только в IOS, потому что в Android я могу исправить это следующим образом:
import {PermissionsAndroid} from 'react-native';



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Именно так работают разрешения в iOS, и нет никакого способа заставить приложение снова запросить разрешение после того, как оно было отклонено. Единственный способ заставить пользователя включить разрешение — направить его к настройкам своего приложения и включить его вручную.
Я делаю следующее для разрешений.
Я использую react-native-permissions для проверки и запроса разрешений, которые мне нужны в iOS. https://github.com/yonahforst/react-native-разрешения
Затем я использую react-native-open-settings, чтобы открыть страницу настроек. https://github.com/lunarmayor/react-native-open-settings
Оба они требуют изменения собственного кода, поэтому они не будут работать в Expo.
Я также использую Redux (вы можете использовать Асинстораже) в своем приложении и отслеживаю AppState. Поэтому я знаю, когда пользователь вернулся в приложение с экрана настроек, поэтому я могу выполнить любые соответствующие действия в приложении (например, снова проверить разрешение, открыть медиатеку и т. д.).
Я использую его в своем приложении версии 0.58.4, и оно работает.
1. Когда пользователь нажимает кнопку для медиатеки, проверьте статус разрешения -> как проверить статус разрешения, эта библиотека github.com/yonahforst/реагировать-родные-разрешения не поддерживает мою нативную версию 0.57.8