我正在使用react-native-photos-framework创建用户定义的相册并将资源创建到设备本机库中。
在我的应用程序中,我为用户提供了用户定义的专辑创建功能。为此,我正在显示一个带有输入字段的简单模态,用户可以在其中输入相册名称和“确定”和“取消”按钮。
我想要的是 ? 我希望当用户在输入字段中输入相册名称后单击“确定”按钮时,应在库中创建一个打印的相册,并且应该将一个默认图像(位于我的本地目录中)添加到该相册中。
这是我使用的代码:
createAlbum() {
RNPhotosFramework.createAlbum(this.state.createAlbumName).then((album) => {
RCTCameraRollRNPhotosFrameworkManager.createAssets({
images : [{ uri : '../assets/logo.png' }],
album : album,
includeMetadata : true
});
}).catch((error)=>{
alert("Error in creating album : \n"+JSON.stringify(error));
});
}
正如您所看到的,我首先创建的是在图库中成功创建的相册,但资产并未在该相册中复制。它给了我这个错误:
找不到图像文件:///用户/ vision / Library / Developer / CoreSimulator / Devices / E5AA1780-A55C-4C67-95A5-222E4AS3PA23 / data / Containers / Bundle / Application / 5E37FAF5-15DD-483B-3BD6-C311C587SD8 / CameraApp的.app /../资产/ IMGS / logo.png
我也使用require()
获取图像uri如下:
images : [{ uri : require('../assets/logo.png' )}],
但随后应用程序将崩溃。
这是我的项目结构:
请帮助我如何使用react-native-photos-framework创建本地静态图像的资产。我是新来的反应原生!
如果有人也运行在这个问题我已经解决了使用this答案的问题。
要解决问题首先安装react-native-fs。
然后在项目中导入它。
const RNFS = require('react-native-fs');
然后我使用RNFS.MainBundlePath
获取我的应用程序根路径并在我的实际路径之前添加assets
。
这是代码:
createAlbum() {
RNPhotosFramework.createAlbum(this.state.createAlbumName).then((album) => {
RCTCameraRollRNPhotosFrameworkManager.createAssets({
images : [{uri:RNFS.MainBundlePath+'assets/src/assets/imgs/logo.png'}],
album : album,
includeMetadata : true
}).then((result)=>{
alert(JSON.stringify(result));
}).catch((error)=>{
alert("Error in creating assets.\n"+JSON.stringify(error));
});
});
}
希望它会帮助某人。