在 iOS 上, React Native 远程 GIF 图片保存到相册后变成了静态图片

2020-05-28 17:03:40 +08:00
 xyxc0673

最近有个需求,需要把服务器上的 GIF 图片保存到系统相册中,但是我在尝试了几种方式后,发现保存后的 GIF 图片都变成了静态图片。

我新建了一个新的 RN 项目来模拟这样的情况

"dependencies": {
    "@react-native-community/cameraroll": "^1.7.2",
    "react": "16.11.0",
    "react-native": "0.62.2",
    "react-native-fs": "^2.16.6",
    "rn-fetch-blob": "^0.12.0"
  }

尝试过以下几种方式

const img = 'https://i.loli.net/2020/05/28/YKaCdO1pexuThbN.gif'
CameraRoll.saveToCameraRoll(img);
const img = 'https://i.loli.net/2020/05/28/YKaCdO1pexuThbN.gif'
const storeLocation = `${RNFS.TemporaryDirectoryPath}`;
const pathName = `${new Date().getTime()}_babycam_moji.gif`;
const downloadPath = `${storeLocation}${pathName}`;
const ret = RNFS.downloadFile({
  fromUrl: img,
  toFile: downloadPath,
});
ret.promise.then((res) => {
  console.log('res', res);
  if (res && res.statusCode === 200) {
    const promise = CameraRoll.saveToCameraRoll(
      `file://${downloadPath}`,
    );
    promise.then(() => {});
  } else {
  }
});
RNFetchBlob.config({appendExt: 'gif', fileCache: true})
  .fetch('GET', img)
  .then((res) => {
  console.log('res', res.path());
  CameraRoll.saveToCameraRoll(res.path());
});

以上的方法我都尝试过,但保存后的 GIF 图片还是变成静态图片。

1191 次点击
所在节点    问与答
3 条回复
tanranran
2020-05-28 17:42:16 +08:00
试试用三方软件查看,看看能不能播放
xyxc0673
2020-05-28 17:55:14 +08:00
@tanranran 我用 Airdrop 传到笔记本上,还是一样,静态的
liutao1998
2021-12-21 10:21:14 +08:00
现在有个 pr 修复了,但是还没 merge 过去

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/676379

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX