反应本机共享图像

时间:2017-09-19 08:48:38

标签: reactjs react-native

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

是否有人想知道通过本机应用程序共享图像。

提前致谢。

6 个答案:

答案 0 :(得分:1)

您还可以通过url参数发送包含Share的图片:

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

答案 1 :(得分:1)

我使用react-native-share插件完成了

步骤:

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

阅读here以获取其余的代码...非常简单,直接。 如果您想在base64中共享图片,则必须像这样通过:

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

如果要直接从源代码共享,则必须像这样通过:

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

希望这会有所帮助:)

答案 2 :(得分:0)

解决方案:

  • 获取要转换为base64的图像的路径。
  • 对于共享图片,请使用:react-native-share lib share
  • 要访问设备目录,建议使用:rn-fetch-blob。 Wikki lib

dwFile(file) { let imagePath = null; RNFetchBlob.config({ fileCache: true }) .fetch("GET", file) // 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 =数据:image / png; base64,+ base64Data; // here's base64 encoded image await Share.open({ url: base64Data }); // remove the file from storage return fs.unlink(imagePath); }); }

希望这会有所帮助。

答案 3 :(得分:0)

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

请参见https://docs.expo.io/versions/latest/sdk/sharing/

用法非常简单:

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

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

答案 4 :(得分:0)

您不能在大多数社交媒体或平台上同时共享图像和URL。为此,您需要一个可通过API创建的可共享图像链接。

答案 5 :(得分:-1)

我尝试如下:

import {
     Share
} from 'react-native';
 let shareImage = {
                title: caption,//string
                message: message,//string
                url:imageUrl,// eg.'http://img.gemejo.com/product/8c/099/cf53b3a6008136ef0882197d5f5.jpg',

            };
            Share.open(shareImage).catch(err => console.log(err));

希望这对您有帮助。干杯!