Appstate продолжает получать изменения в React Native для AndroidAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Appstate продолжает получать изменения в React Native для Android

Сообщение Anonymous »


Я работаю над собственным проектом React и получаю разрешения на определение местоположения. Кроме того, мне нужно всегда отслеживать разрешения на определение местоположения, например, если пользователь предоставил разрешения на доступ после установки приложения, а затем через некоторое время пользователь перешел к настройкам приложения в настройках устройства и отключил/отозвал разрешения. Опять же, как только приложение переходит из фонового режима на передний план, мне нужно проверить разрешение на основе этого. Необходимо показывать сообщения.

Итак, я использую Appstate. Но, как ни странно, в Android после установки приложения если пользователь отклонил разрешение, установив флажок «Больше не показывать», состояние приложения продолжает меняться с фоном и активностью всегда. Это продолжается в цикле.

comComponentDidMount = async () => { AppState.addEventListener('change', this.handleAppStateChange); }; компонентWillUnmount() { AppState.removeEventListener('change', this.handleAppStateChange); Geolocation.clearWatch(this.watchID); } handleAppStateChange = асинхронный nextAppState => { const {appState} = this.state; console.log('nextAppState -->', nextAppState); console.log('appState -->', appState); if (appState === 'активный') { // сделай это это.showLoader(); дождитесь этого.requestAndroidLocationPermission(); } else if (appState === 'background') { // сделай это } else if (appState === 'неактивно') { // делаем что-то еще } this.setState({appState: nextAppState}); }; requestAndroidLocationPermission = асинхронный () => { пытаться { const предоставлено = ожидайте PermissionsAndroid.request( РазрешенияAndroid.PERMISSIONS.ACCESS_FINE_LOCATION, {}, ); if (предоставлено === PermissionsAndroid.RESULTS.GRANTED) { this.getLatitudeLongitude(); } else if (предоставлено === PermissionsAndroid.RESULTS.NEVER_ASK_AGAIN) { это.hideLoader(); this.setState({ errorMessage: 'Разрешение на определение местоположения отклонено', isLoading: ложь, }); } еще { это.hideLoader(); this.requestAndroidLocationPermission(); } } поймать (ошибиться) { console.warn(ошибка); } }; Печать продолжается (цикл) после того, как отказано в разрешении с помощью параметра «Больше не показывать»

appState --> активно следующееAppState --> фон состояние приложения -> активно следующееAppState --> фон состояние приложения -> активно следующееAppState --> фон состояние приложения -> активно Это продолжается и никогда не прекращается.

Как с этим справиться? Есть предложения?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»