使用 react-native-photos-framework 创建本地静态图像资产的问题
Problem in creating asset of local static image using react-native-photos-framework
我正在使用 react-native-photos-framework 创建用户定义的相册并将资产创建到设备原生图库中。
在我的应用程序中,我为用户提供了用户定义的相册创建功能。为此,我显示了一个带有输入字段的简单模式,用户可以在其中输入专辑名称和 'OK' 和 'CANCLE' 按钮。
我想要什么?
我希望当用户在输入字段中键入相册名称后单击 'OK' 按钮时,应在图库中创建一个键入的相册,并且应将默认图像(在我的本地目录中)添加到该相册。
这是我使用的代码:
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));
});
}
如您所见,我首先创建的相册在图库中创建成功,但资产并未复制到该相册中。它给我这个错误:
Could not find image file:///Users/vision/Library/Developer/CoreSimulator/Devices/E5AA1780-A55C-4C67-95A5-222E4AS3PA23/data/Containers/Bundle/Application/5E37FAF5-15DD-483B-3BD6-C311C587SD8/CameraApp.app/../assets/imgs/logo.png
我还使用 require()
获取图像 uri,如下所示:
images : [{ uri : require('../assets/logo.png' )}],
但随后应用程序将崩溃。
这是我的项目结构:
请帮助我如何使用 react-native-photos-framework 创建本地静态图像资产。我是 React Native 的新手 !!!
如果有人也运行遇到这个问题,我已经使用答案解决了问题。
解决问题先安装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));
});
});
}
希望对大家有所帮助。
我正在使用 react-native-photos-framework 创建用户定义的相册并将资产创建到设备原生图库中。
在我的应用程序中,我为用户提供了用户定义的相册创建功能。为此,我显示了一个带有输入字段的简单模式,用户可以在其中输入专辑名称和 'OK' 和 'CANCLE' 按钮。
我想要什么?
我希望当用户在输入字段中键入相册名称后单击 'OK' 按钮时,应在图库中创建一个键入的相册,并且应将默认图像(在我的本地目录中)添加到该相册。
这是我使用的代码:
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));
});
}
如您所见,我首先创建的相册在图库中创建成功,但资产并未复制到该相册中。它给我这个错误:
Could not find image file:///Users/vision/Library/Developer/CoreSimulator/Devices/E5AA1780-A55C-4C67-95A5-222E4AS3PA23/data/Containers/Bundle/Application/5E37FAF5-15DD-483B-3BD6-C311C587SD8/CameraApp.app/../assets/imgs/logo.png
我还使用 require()
获取图像 uri,如下所示:
images : [{ uri : require('../assets/logo.png' )}],
但随后应用程序将崩溃。
这是我的项目结构:
请帮助我如何使用 react-native-photos-framework 创建本地静态图像资产。我是 React Native 的新手 !!!
如果有人也运行遇到这个问题,我已经使用
解决问题先安装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));
});
});
}
希望对大家有所帮助。