下载在 MS Teams 选项卡中生成的文件

问题描述 投票:0回答:3

我正在构建一个 MS Teams 应用程序,它应该在选项卡中运行。如何让用户下载客户端生成的应用程序中的文件?在 Teams 外部运行的普通 Web 应用程序中,我可以使用 https://github.com/eligrey/FileSaver.js 中的 saveAs 函数,但它似乎无法在 Teams 选项卡中工作。

我还尝试使用 microsoftTeams.openFilePreview(...) 函数并将 objectUrl 设置为数据 Url,但它似乎也不起作用。

有什么建议吗?

javascript microsoft-teams
3个回答
1
投票

您可以尝试使用下面的代码吗

var ifrm = document.createElement("iframe");

    ifrm.setAttribute("src", "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf");
    ifrm.style.width = "640px";
    ifrm.style.height = "480px";
    document.body.appendChild(ifrm); 
    return ifrm;

我已经实现并测试了上面的代码,它按预期工作。


0
投票

我无法使用 iframe 获得使用数据 url 的解决方案,但此解决方案有效:

        const link = document.createElement('a');
        link.download = filename;
        link.href = url;
        document.body.appendChild(link);
        link.click();
        document.body.removeChild(link);

其中 url 是数据 url(例如 data:application/pdf;base64,JVBERi0xLjMKJbrfrOAKMyAwIG9iago8PC9UeXBlIC9QYWdlCi9QYXJlbnQ...),filename 是要下载的文件的名称。


0
投票

这是一个老问题,但我仍然面临着如何能够从移动设备上的 Microsoft Teams 应用程序下载/预览文件的难题。

在 iOS 上,我可以预览文件(不能下载),但在 Android 上,我立即收到以下错误: “出了点问题 - 目前移动设备不支持此操作”。

这是我尝试下载文件的方式:

  const url = window.URL.createObjectURL(blob);
  const link = document.createElement('a');
  link.href = url;
  link.setAttribute('download', fileName);

  document.body.appendChild(link);

  link.click();

  (link.parentNode as Node).removeChild(link);

如果有人找到任何解决方案,或者您有任何指导/想法可以提供,我会接受:)

谢谢你。

© www.soinside.com 2019 - 2024. All rights reserved.