通过网络共享共享文件 api 仅在 IOS 15 上部分工作

Sharing files over webshare api only partially working on IOS 15

对于我正在构建的网络应用程序,我需要集成文件共享功能。自 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);
    }

我找到了解决方案。问题是 navigator.share 中的标题 属性 这导致 IOS 上的某些应用认为我想共享文本而不是文件。

非常令人沮丧,因为这在其他浏览器中工作正常,但至少现在可以工作。

以下作品:

navigator
        .share({
            files: fileArray,
        })