通过 webshare api 共享文件仅在 IOS 15 上部分工作
Posted
技术标签:
【中文标题】通过 webshare api 共享文件仅在 IOS 15 上部分工作【英文标题】:Sharing files over webshare api only partially working on IOS 15 【发布时间】:2021-09-22 17:37:30 【问题描述】:对于我正在构建的 web 应用程序,我需要集成文件共享功能。自 ios 15 发布以来,这现在终于成为可能。但是,我只让它部分工作。当我通过电子邮件或消息共享文件时,它工作正常。但是当我尝试与whatsapp、signal 或threema 共享时,它只会共享标题,而不是实际文件。我没有在控制台中看到任何错误或任何失败的网络请求。
const audioResponse = await fetch(sound.downloadUrl);
const fileBuffer = await audioResponse.arrayBuffer();
const fileArray = [
new File([fileBuffer], name + '.mp3',
type: 'audio/mpeg',
lastModified: Date.now(),
),
];
if (
window.navigator.canShare &&
window.navigator.canShare( files: fileArray )
)
navigator
.share(
files: fileArray,
title: name,
text: 'File share test',
)
.then(() =>
console.log('Success!');
)
.catch(console.error);
【问题讨论】:
【参考方案1】:我找到了解决方案。问题是 navigator.share
中的 title 属性这导致 IOS 上的某些应用程序相信我想共享文本而不是文件。
非常令人沮丧,因为这在其他浏览器中运行良好,但至少现在可以运行。
以下作品:
navigator
.share(
files: fileArray,
)
【讨论】:
您是否也可以共享文本或仅文件?您说title
属性是问题,但您的工作代码也省略了 text
属性。如果可能的话,我正在尝试找到一个解决方案来分享两者。
我刚测试过,想要分享图片的不能分享任何文字...
该死的,这需要修复......以上是关于通过 webshare api 共享文件仅在 IOS 15 上部分工作的主要内容,如果未能解决你的问题,请参考以下文章
我用websharing已经连接到手机,为啥不能上传文件到手机呢?