【问题标题】:Save to Camera Roll using EXPO使用 EXPO 保存到相机胶卷
【发布时间】:2021-03-10 19:54:26
【问题描述】:

我正在尝试使用 Expo 从 URL 将图像保存到相机胶卷,但我的代码无法正常工作。请看一下,看看您是否可以帮助我,因为这将非常有帮助并且非常感谢。

这是代码:

const handleSave = async  (image) => {
  let cameraPermissions = await Permissions.askAsync(Permissions.CAMERA_ROLL)
  if (cameraPermissions !== 'granted'){
    cameraPermissions = await Permissions.getAsync(Permissions.CAMERA_ROLL)
  }
  if (cameraPermissions.status  === 'granted'){
    FileSystem.downloadAsync(
      image.largeImageURL,
      FileSystem.documentDirectory + image.id +'.jpg',
      console.log(image.largeImageURL)
    )
    .then(({uri})=>{
      MediaLibrary.saveToLibraryAsync(uri)
      alert('saved to photos')
    })

  } else {
    alert('It requires permissions to save photos')
  }
} 

【问题讨论】:

  • 欢迎使用 StackOverflow MMNK,如果您可以指定代码的哪些部分不工作、是否有任何错误弹出或类似的内容,这将很有帮助,因为这将有助于查明问题其他人。

标签: reactjs react-native expo native


【解决方案1】:
const handleSave = async image  => {
      let cameraPrmissions = await Permissions.getAsync(Permissions.CAMERA_ROLL); 
      if(cameraPrmissions.status !== 'granted') {
        cameraPrmissions = await Permissions.askAsync(Permissions.CAMERA_ROLL);
      }
      
      if(cameraPrmissions.status === 'granted') {        
        MediaLibrary.saveToLibraryAsync(image)
        alert('Image saved to Library')
      } else {
        console.log('You did not allow permissions to camera');
      }
}

【讨论】:

  • 虽然这个代码块回答了这个问题,但最好能稍微解释一下它为什么这样做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-23
  • 1970-01-01
  • 2016-05-01
相关资源
最近更新 更多