React Native Camera:拍照后,如何将其保存在应用程序本身而不是将其保存在图库中?

时间:2018-05-04 12:20:24

标签: react-native react-native-camera

此问题与我在其中一个项目中使用的react-native-camera库有关。

<RNCamera
   ref={ref => {
      this.camera = ref;
   }}
   style = {styles.preview}
   type={RNCamera.Constants.Type.back}
   flashMode={RNCamera.Constants.FlashMode.on}
   permissionDialogTitle={'Permission to use camera'}
   permissionDialogMessage={'We need your permission to use your camera phone'}
/>

以上代码将图像保存在图库中。我们如何将其保存在app文件夹或其他私人文件夹中,而不是在设备库中显示?

2 个答案:

答案 0 :(得分:0)

您可以通过CameraRoll

CameraRoll.saveToCameraRoll(tag, [type]);

将照片或视频保存到相机胶卷或照片库中。

在Android上,标签必须是本地图像或视频URI,例如“ file:///sdcard/img.png”。

在iOS上,标签可以是任何图像URI(包括本地,远程资产库和base64数据URI)或本地视频文件URI(目前不支持远程或数据URI来保存视频)。

如果标记的文件扩展名为.mov或.mp4,则会将其推断为视频。否则,它将被视为照片。要覆盖自动选择,您可以传递一个可选的type参数,该参数必须是“ photo”或“ video”之一。

返回一个承诺,该承诺将使用新的URI进行解析。

答案 1 :(得分:0)

根据react native文档,您应该尝试此操作...

CameraRoll.getPhotos({
   first: 20,
   assetType: 'Photos',
})
.then(r => {
   this.setState({ photos: r.edges });
})
.catch((err) => {
  //Error Loading Images
});

CameraRoll documentation