在我的电子应用程序中显示 Teams Web 应用程序

Displaying Teams web app in my electron app

所以我正在开发一个电子应用程序,我想在其中显示 MS Teams 网络应用程序。我已经设法显示 MS Word、MS Powerpoint 和其他一些我想显示的应用程序。除了 MS Teams,每个应用程序都在工作。我正在为除 Teams 之外的所有人和所有工作使用“window.loadURL('')”。我已禁用 nodeIntegration 并启用 contextIsolation.

当我 运行 应用程序并尝试在控制台中打开 Teams 时,出现 2 个我无法解决的错误,我尝试了很多方法使其正常工作。

错误信息

告诉我这是否可能,我对电子不是很有经验...

将最新的 chrome 用户代理添加到 BrowserView 有帮助。在 Teams 的 BrowserView 中加载 Teams 之前,您可以向其中添加最新的 chrome 用户代理。

const userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36';
let view;
view = new BrowserView();
view.webContents.setUserAgent(userAgent);
view.wevContents.loadURL('https://teams.microsoft.com');

这适用于 Chrome 87,但是如果您尝试将用户代理设置为 'Chrome',您将收到类似“您的浏览器版本太旧”的错误。

电子浏览器窗口也是如此。

是的,这可能是一个解决方案。但我不推荐使用它。由于 Google 计划对用户代理进行大量更改并最终将其删除。您可以在这里阅读更多相关信息:

是的,也许你可以使用它,但我们不知道 Google 的微小变化会对你的电子应用程序产生怎样的影响。

Teams 桌面客户端确实是使用 Electron 构建的;但是,我们已经编写了数千行 Electron 代码和原生模块来帮助我们为客户提供近乎原生的体验。此外,Teams 使用分叉版本的 Electron,该版本修复了许多安全漏洞和其他错误,有助于确保我们客户的安全。您尝试通过 https://teams.microsoft.com 加载的 Web 客户端代码对我们的桌面客户端代码提供的许多 IPC 接口和其他机制做出了假设,这些在您的 Electron 应用程序中不可用,因此期望它是不现实的只是工作。

Teams 已经提供了一种从众多 Microsoft 构建的和合作伙伴的应用程序中提取内容和工具的方法,允许您以您认为合适的任何方式自定义您的客户端。您还可以使用我们的平台 (https://docs.microsoft.com/en-us/microsoftteams/platform/) 构建您自己的应用程序。您是否考虑过使用这些机制来增强 Teams 桌面客户端而不是构建您自己的替代方案?