«RNPermissionsModule» не найден. Нарушение инварианта: TurboModuleRegistry.getEnforceing(...)IOS

Программируем под IOS
Ответить
Anonymous
 «RNPermissionsModule» не найден. Нарушение инварианта: TurboModuleRegistry.getEnforceing(...)

Сообщение Anonymous »

Я пытаюсь создать приложение, которое открывает камеру после запроса разрешения. Я использую «реагирующие нативные разрешения», и кажется, что он не может найти RNPermissionsModule. Я тестирую его на телефоне Android. В настоящее время у меня установлена ​​версия 4.0.4 «react-native-permissions»
Вот еще одна ошибка, связанная с основной проблемой:

Код: Выделить всё

[TypeError: Cannot read property 'PERMISSIONS' of undefined]
Вот мой Permissions.js

Код: Выделить всё

import { Alert, Platform } from 'react-native';
import { check, PERMISSIONS, RESULTS, request, openSettings } from 'react-native-permissions';

export const isIOS = Platform.OS === 'ios';

function showAlert(msg) {
Alert.alert('', msg, [
{
text: 'Cancel',
onPress: () => console.log('Cancel Pressed'),
style: 'cancel',
},
{
text: 'Settings',
onPress: () => {
openSettings().catch(() => console.warn('cannot open settings'));
},
},
]);
}

const hasCameraPermission = async (withAlert = true) => {
try {
const permission = isIOS
? PERMISSIONS.IOS.CAMERA
: PERMISSIONS.ANDROID.CAMERA;
const response = await check(permission);
let camera;
if (response.camera !== RESULTS.GRANTED) {
camera = await request(permission);
}
if (camera === RESULTS.DENIED || camera === RESULTS.BLOCKED) {
if (withAlert) {
showAlert(
'Permission not granted for Camera. Unable to use camera in this application.',
);
}
return false;
}
return true;
} catch (error) {
console.log(error);
return false;
}
};

const hasPhotoPermission = async (withAlert = true) => {
try {
const permission = isIOS
? PERMISSIONS.IOS.PHOTO_LIBRARY
: PERMISSIONS.ANDROID.WRITE_EXTERNAL_STORAGE_StorageService;
const response = await check(permission);
let photo;
if (response.photo !== RESULTS.GRANTED) {
photo = await request(permission);
}
if (photo === RESULTS.DENIED || photo === RESULTS.BLOCKED) {
if (withAlert) {
showAlert(
'Permission not granted for photos. Unable to get photos in this application.',
);
}
return false;
}
return true;
} catch (error) {
console.log(error);
return false;
}
};

const PermissionsService = {
hasCameraPermission,
hasPhotoPermission,
}

export default PermissionsService;
Вот что я пробовал:
  • Переустановка 'react-native-permissions'
  • Понижение версии 'react-native-permissions'
  • очистка кеша
  • Проверьте, зарегистрирован ли RNPermissionsModule с помощью

Код: Выделить всё

const { NativeModules } = require('react-native');

if (NativeModules.RNPermissionsModule) {
console.log('RNPermissionsModule is registered!');
} else {
console.log('RNPermissionsModule not found');
}
Вывод: RNPermissionsModule не найден

Подробнее здесь: https://stackoverflow.com/questions/778 ... duleregist
Ответить

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

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

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

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

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