Ben*_*Ben 5 javascript base64 share navigator typescript
因此,我需要在 TypeScript 上使用 Web Share API 共享一个 base64 图像字符串。
如果我像这样传递 base64 字符串作为 url 参数可以吗:
var base64url = "data:image/octet-stream;base64,/9j/4AAQSkZ...."
navigator.share({
title: 'Hello',
text: 'Check out this image!',
url: base64url ,
})
Run Code Online (Sandbox Code Playgroud)
或者我需要有一个 Files Array 并使用 Web Share API v2 吗?如果是这样,我该如何实现它,我所拥有的只是一个 base64 字符串,而我发现的示例太混乱了。
我是这方面的菜鸟,因此将不胜感激!
小智 5
正如评论中提到的,在 url 字段中共享 url 不会为您的用户带来好的结果。
您可以通过以下代码使用 Web Share API v2:
const base64url = "data:image/octet-stream;base64,/9j/4AAQSkZ...."
const blob = await (await fetch(base64url)).blob();
const file = new File([blob], 'fileName.png', { type: blob.type });
navigator.share({
title: 'Hello',
text: 'Check out this image!',
files: [file],
})
Run Code Online (Sandbox Code Playgroud)
您可能需要根据您的实际图像 url 调整扩展名和 mime 类型。
请注意,虽然 v2 目前仅在 Android Chrome 上可用(我找不到合适的来源,但我只是在一个项目中做到了这一点)。您可以使用navigator.canShare()在运行时检查可用性。