Возможный необработанный отказ от обещания (id: 0): Ошибка: в доступе отказано (при сохранении изображения через «CameraRoll.saveToCameraRoll ()») - PullRequest
0 голосов
/ 04 марта 2019

ss из моего отладчика

Получено разрешение при попытке сохранить изображение в галерее через "CameraRoll.saveToCameraRoll ()" от реагировать родным.мой код ниже ==>

takePicture = async function() {
if (this.camera) {
  const data = await this.camera.takePictureAsync();
  let saveResult = CameraRoll.saveToCameraRoll(data.uri);
  console.warn('takePicture ', saveResult);
  console.warn('picture url ', data.uri);
}

};

Я получил разрешения от Android манифеста и IOS, добавив необходимые коды.(На Android) разрешения для манифеста Android

даже в ios я получаю ту же ошибку, в которой отказано в разрешении.что я должен сделать, чтобы работать это.Я не хочу использовать файловую систему RN.

1 Ответ

0 голосов
/ 05 марта 2019

Я прошел через множество ресурсов и, наконец, получил причину.Каким-то образом мое разрешение на манифест не получило разрешения на запись внешнего разрешения, как показано ниже.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

, поэтому я добавил разрешение времени выполнения для внешней записи, и оно отлично работает.я использую PermissionsAndroid от реагировать родной .

коды ниже =>

try {
    const granted = await PermissionsAndroid.request(
      PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE,
      {
        title: "Cool Photo App Camera Permission",
        message:
          "Cool Photo App needs access to your camera " +
          "so you can take awesome pictures.",
        buttonNeutral: "Ask Me Later",
        buttonNegative: "Cancel",
        buttonPositive: "OK"
      }
    );
    if (granted === PermissionsAndroid.RESULTS.GRANTED) {
      console.log("You can use the camera");

      const data = await this.camera.takePictureAsync();
      let saveResult = CameraRoll.saveToCameraRoll(data.uri);
      console.warn("takePicture ", saveResult);
      console.warn("picture url ", data.uri);
    } else {
      console.log("Camera permission denied");
    }
  } catch (err) {
    console.warn(err);
  }
...