0

react-native-share用来在不同的社交平台上分享内容。对于纯文本,它工作正常。但是当我包含图像+消息(包含链接)+标题时,它就不起作用了。

这是我用来执行此操作的代码:

 let imagePath = null;
  RNFetchBlob.config({
    fileCache: true,
  })
    .fetch('GET', FILE_URL)
    .then((resp) => {
      imagePath = resp.path();
      return resp.readFile('base64');
    })
    .then(async (base64Str) => {
      const content = `Sharing Link ${link}`;
      const base64Data = `data:image/jpeg;base64,${base64Str}`;

      const shareOption = {
        message:content,
        url: base64Data,
        title: 'This is title',
        type: 'image/jpeg',
      };
      await Share.open(shareOption);
      return RNFetchBlob.fs.unlink(imagePath);
    });
} catch (error) {
  console.error(error);
}

我尝试了它的不同变体,我在 SO 和其他链接上找到的。但他们都没有工作。我尝试过但没有奏效的方法:

  1. 共享图像的 URL 而不是 base64 - 仅共享图像,消息被删除。并且在什么应用程序中,图像链接不会转换为图像。
  2. 通过删除消息键并仅传递 url。(以这种方式共享图像。但它没有相关性。因为我无法设置任何类型的消息或链接)

我不确定我在这里缺少什么。

4

1 回答 1

2

这是一个有趣的项目。我必须事先承认,这有点无法回答。对此我深表歉意,但我想让你知道我的发现,因为分享我的研究似乎更有用,而不是仅仅把它留在我的脑海里,它太大了,无法发表评论。

因此,我查看了该项目的 github 问题,以查看您的问题是否已记录在案。有93 个未解决的问题,很多人抱怨各种事情,这些事情在结合这些变量(消息、base64)时并不像你想象的那样工作,尤其是在 iOS 上。您是否查看了他们的问题日志以查看是否可以找到更好的详细信息?你用的是iOS吗?

这里有一些似乎是开放的,它们抱怨几乎与您发布的确切问题有关。有些提供解决方法。有些会导致死胡同。如果您还没有阅读这些内容,那么您应该加快速度。如果你知道这一切,也许我会把这篇文章留给后代,如果其他人遇到它。

https://github.com/react-native-share/react-native-share/issues/760

https://github.com/react-native-share/react-native-share/issues/966

https://github.com/react-native-share/react-native-share/issues/831

https://github.com/react-native-share/react-native-share/issues/1025

于 2021-05-17T23:15:57.353 回答