Expo ImagePicker.launchImageLibraryAsync Отсутствует разрешение камеры.

Я использую create-react-native-app, и у меня проблема с разрешениями при попытке получить изображение из камеры.

когда я вызываю метод: ImagePicker.launchImageLibraryAsync, я получаю сообщение об ошибке: Missing camera roll permission.

import { ImagePicker } from 'expo';

export const getImageFromLibrary = () => ({
    type: GET_IMAGE_FROM_LIBRARY,
    promise: () => ImagePicker.launchImageLibraryAsync({
        height: '100px',
        width: '100px',
        base64: true
    })
});

ошибка: Missing camera roll permission. предполагает, что у моего приложения нет разрешения, поэтому я затем создал другую кнопку для запроса разрешения.

import { Permissions } from 'expo';

<Button
    onPress={() =>
        Permissions.getAsync(Permissions.CAMERA_ROLL)
            .then(console.log)
    }
><Text>get permission</Text></Button>

но когда я нажимаю на эту кнопку, метод console.log() возвращается с: {status: "granted", expires: "never"}.

это будет означать, что разрешение предоставлено бессрочно. но вызов для получения изображения из библиотеки по-прежнему отклонен из-за отсутствия разрешения.


person X0r0N    schedule 13.05.2018    source источник
comment
Попробуйте вернуться к версии 24.0.3, если у вас последняя. Я думаю, что это все еще нерешенная проблема в их библиотеке.   -  person Pritish Vaidya    schedule 13.05.2018
comment
Спасибо за ответ. Я изменил версию expo на и удалил папку node_modules и запустил npm install. к сожалению, это тоже не работает. команда Permissions.getAsync(Permissions.CAMERA_ROLL) теперь возвращает обещание, содержащее {status: "undetermined", expires: "never"}.   -  person X0r0N    schedule 13.05.2018
comment
Вам не нужно спрашивать разрешения после перехода на более раннюю версию. Я спросил команду Expo по этому поводу: forum.expo.io/t/   -  person Roy Wang    schedule 14.05.2018
comment
это не решает мою проблему. Я перешел на версию Expo 24.0.3, как было предложено. Затем я выполнил команду watchman watch-del-all && rm -rf node_modules && npm install && yarn cache clean. но даже после перезапуска Expo XDE и симулятора iphone проблема все еще существует.   -  person X0r0N    schedule 14.05.2018


Ответы (1)


Если вы можете выполнить обновление до expo версии 27.0.1 и 28.0.0, вы увидите, что он работает.

Я тестировал его с проектом CRNA. Работает нормально.

Удачи!

person Ken Kosaki    schedule 01.08.2018