如何解决在我的电子应用程序中显示团队 Web 应用程序
所以我正在开发一个电子应用程序,我想在其中显示 MS Teams 网络应用程序。我已经设法显示 MS Word、MS Powerpoint 和我想显示的其他一些应用程序。除了 MS 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 使用电子的分叉版本,该版本对安全漏洞和其他错误进行了大量修复,有助于确保我们客户的安全。您尝试通过 https://teams.microsoft.com 加载的 Web 客户端代码对我们的桌面客户端代码提供的许多 IPC 接口和其他机制进行了假设,而这些机制在您的 Electron 应用程序中不可用,因此期望它能够只是工作。
Teams 已经提供了一种从众多 Microsoft 构建和合作伙伴应用程序中提取内容和工具的方法,允许您以任何您认为合适的方式自定义您的客户端。您还可以使用我们的平台 (https://docs.microsoft.com/en-us/microsoftteams/platform/) 构建您自己的应用程序。您是否考虑过使用这些机制来增强 Teams 桌面客户端,而不是构建您自己的替代方案?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。