我想将图像保存在cameraroll中,并且我正在使用@react-native-community/cameraroll。 要安装我运行的软件包:
yarn add @react-native-community/cameraroll
在
settings.gradle
文件中我添加了:
include ':@react-native-community_cameraroll'
project(':@react-native-community_cameraroll').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-community/cameraroll/android')
我跑了
yarn add fbjs
因为我在此链接中遇到错误: https://github.com/react-native-cameraroll/react-native-cameraroll/issues/352
我在
AndroidManifest.xml
文件中添加了这些权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
我在AndroidManifest的应用程序标签中添加了
android:requestLegacyExternalStorage="true"
这是我的代码:
import CameraRoll from "@react-native-community/cameraroll";
async function hasAndroidPermission() {
const permission = PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE;
const hasPermission = await PermissionsAndroid.check(permission);
if (hasPermission) {
return true;
}
const status = await PermissionsAndroid.request(permission);
return status === 'granted';
}
const savePicture = async (path,album)=>{
if (Platform.OS === "android" && !(await hasAndroidPermission())) {
return;
}
CameraRoll.save(path, {album})
}
当我调用 savePicture 时,我收到此警告:
Possible Unhandled Promise Rejection (id: 0):
Error: Operation not permitted
当我在 android 9/10 中测试这个时,我没有任何问题。在 android 11/12 中,我收到警告并且图片无法保存。 React-native 版本:0.68.2
有人可以帮助我吗? 预先感谢。
使用此库获取 React Native react-native-permissions 中的权限。 它适用于 Android 和 iOS。
这篇文章记录了如何将在线图像保存到ios照片库:
https://community.theta360.guide/t/react-native-save-a-network-image-to-an-ios-camera-roll/9875