我正在尝试通过各种可用设备的应用程序(例如,WhatsApp、Skype、电子邮件等)将从相机或图库拍摄的图像共享到其他设备。我发现提供了“共享”功能,但根据我的知识和研究,它只允许共享文本数据。
有人对通过本机应用程序共享图像有任何想法。
提前致谢。
我正在尝试通过各种可用设备的应用程序(例如,WhatsApp、Skype、电子邮件等)将从相机或图库拍摄的图像共享到其他设备。我发现提供了“共享”功能,但根据我的知识和研究,它只允许共享文本数据。
有人对通过本机应用程序共享图像有任何想法。
提前致谢。
解决方案:
获取转换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
插件来做同样的事情
脚步 :
阅读这里的其余代码......它非常简单和直接。如果你想在你中分享图像,base64
你必须像这样通过:
"data:image/png;base64,BASE STRING"
如果您想直接从源代码共享,则必须像这样传递:
url: "file://<file_path>",
希望这可以帮助 :)