react本机共享图像

IT技术 reactjs react-native
2021-05-12 09:25:06

我正在尝试通过各种可用设备的应用程序(例如,WhatsApp、Skype、电子邮件等)将从相机或图库拍摄的图像共享到其他设备。我发现提供了“共享”功能,但根据我的知识和研究,它只允许共享文本数据。

有人对通过本机应用程序共享图像有任何想法。

提前致谢。

4个回答

解决方案:

  • 获取转换base64的图片路径。

  • 对于共享图像使用:react-native-share lib share

  • 要访问设备目录,我建议使用:rn-fetch-blob。 维基库

      dwFile(file_url) {
          let imagePath = null;
          RNFetchBlob.config({
              fileCache: true
          })
          .fetch("GET", file_url)
          // the image is now dowloaded to device's storage
          .then(resp => {
              // the image path you can use it directly with Image component
              imagePath = resp.path();
              return resp.readFile("base64");
          })
          .then(async base64Data => {
              var base64Data = `data:image/png;base64,` + base64Data;
              // here's base64 encoded image
              await Share.open({ url: base64Data });
              // remove the file from storage
              return fs.unlink(imagePath);
          });
      }
    

希望这可以帮助。

从 Expo 的 SDK33 开始,您可以使用 Expo Sharing 将任何类型的文件共享给其他可以处理其文件类型的应用程序,即使您使用的是 Android。没有分离或任何东西。

https://docs.expo.io/versions/latest/sdk/sharing/

用法非常简单:

import * as Sharing from 'expo-sharing'; // Import the library

Sharing.shareAsync(url) // And share your file !

您还可以通过url参数发送带有 Share 的图像

url: "data:image/png;base64,<base64_data>" 干杯

我用react-native-share插件来做同样的事情

脚步 :

  1. npm install react-native-share --save
  2. react-native链接

阅读这里的其余代码......它非常简单和直接。如果你想在你中分享图像,base64你必须像这样通过:

"data:image/png;base64,BASE STRING"

如果您想直接从源代码共享,则必须像这样传递:

url: "file://<file_path>",

希望这可以帮助 :)