React native 可能未处理的承诺拒绝(id:0):错误:权限被拒绝(通过“CameraRoll.saveToCameraRoll()”保存图像时)
尝试通过react native的“CameraRoll.saveToCameraRoll()”将图像保存到库中时,我的权限被拒绝。我的代码如下==>React native 可能未处理的承诺拒绝(id:0):错误:权限被拒绝(通过“CameraRoll.saveToCameraRoll()”保存图像时),react-native,react-native-camera,React Native,React Native Camera,尝试通过react native的“CameraRoll.saveToCameraRoll()”将图像保存到库中时,我的权限被拒绝。我的代码如下==> takePicture = async function() { if (this.camera) { const data = await this.camera.takePictureAsync(); let saveResult = CameraRoll.saveToCameraRoll(data.uri); console.w
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)
即使在ios中,我也会遇到同样的权限拒绝错误。我该怎么做才能工作呢。我不想尝试RN文件系统。我查阅了大量资料,终于找到了原因。不知何故,我的清单权限没有获得写入外部权限的权限,如下所示
在运行时添加权限后,问题一直存在,直到我执行以下操作: 将以下代码添加到
android/app/src/main/androidmanifest.xml
中的应用程序中:
<application
android:requestLegacyExternalStorage="true"
...
您是否尝试过使用let saveResult=wait CameraRoll.saveToCameraRoll(data.uri)代码>?@MarvinKlar我都试过了。给了我同样的错误,甚至在现在之前YellowBox.js:67可能的未处理承诺拒绝(id:0):错误:权限拒绝错误:权限拒绝
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);
}
<application
android:requestLegacyExternalStorage="true"
...