Web applications 如何将Electron应用程序移植到Surface Hub的UWP

Web applications 如何将Electron应用程序移植到Surface Hub的UWP,web-applications,uwp,electron,desktop-bridge,surface-hub,Web Applications,Uwp,Electron,Desktop Bridge,Surface Hub,我有一个应用程序当前正在使用Electron进行Windows桌面部署。用户界面的大部分是简单的旧JS/CSS/HTML5,节点部分主要是将数据导入chromium部分的基础设施。在Firefox和Chrome放弃之前,人们通常称之为“WebApp” 我能够使用makeappx将这个现有的Electron应用程序转换为UWP,甚至将其放入Window Store,结果发现Surface Hub拒绝运行它,因为它不是“纯”UWP,而是一个包装成UWP的Win32应用程序。在地面轮毂上运行是我的客户

我有一个应用程序当前正在使用Electron进行Windows桌面部署。用户界面的大部分是简单的旧JS/CSS/HTML5,节点部分主要是将数据导入chromium部分的基础设施。在Firefox和Chrome放弃之前,人们通常称之为“WebApp”

我能够使用makeappx将这个现有的Electron应用程序转换为UWP,甚至将其放入Window Store,结果发现Surface Hub拒绝运行它,因为它不是“纯”UWP,而是一个包装成UWP的Win32应用程序。在地面轮毂上运行是我的客户的一项要求

该应用程序在Edge中运行良好,但我的客户需要能够在没有互联网连接的情况下使用该应用程序

我的下一个想法是将应用程序放在闪存驱动器上,然后指向Edge。当然,浏览文件://URL在这个硬件上不起作用,所以不起作用

我的下一个想法是,我可以构建一个简单的HTTP服务器,将其与烘焙的内容一起放入存储(或从闪存驱动器读取内容),然后让它们指向localhost的边缘。然而,我发现一堆文档说在Windows应用商店应用程序中禁止使用环回设备。(对于企业应用程序有一个变通方法,但我不知道这是否适用于Surface Hub,客户端真的只想从Windows应用商店安装,不需要做任何奇怪的事情)

一年前,有人谈论微软正在开发一些技术,以便于将web应用程序移植到Windows桌面。我发现了“Windows10托管的Web应用”,但这似乎只是在网站周围创建了一个Web应用商店容器。在我的情况下,网站将不可用,因为他们需要离线运行。据我所知,似乎没有“非托管”的Web应用选项

当Chrome托管web应用时,我设法使用离线清单说服浏览器在第一次运行时下载整个应用。但这永远不会可靠,因为Chrome会毫无理由地自动扔掉缓存。由于Surface Hub在您结束会话时会主动丢弃缓存,因此我怀疑这种方法也不会起作用。(我发现去年的一篇Windows博客文章似乎在描述这个把戏,并称之为渐进式Web应用程序或PWA;然而,由于它是基于缓存工作人员的,我对Surface Hub的担心只是把它扔掉了。)

那么,如何使我的web应用程序在Surface Hub上脱机工作?我非常高兴有一个闪存驱动器作为解决方案的一部分,如果这有帮助的话

--更新--


见公认的答案。事实证明,您不需要developer studio来完成这项工作。如果创建一个AppxManifest.xml文件并将整个webapp放入一个文件夹中,则可以使用MakeAppx.exe将其打包。请注意,Windows应用商店有一些奇怪的要求,例如您的UTF-8文件需要在前面有一个BOM表。

对于您的Electron应用程序,您是否使用任何本机模块?通常,如果您不依赖本机模块,那么创建Windows Web应用程序是相当简单的。对于Windows Web应用程序,您可以相当轻松地将本地内容与远程内容混合使用。

我的完整桌面版本有些复杂,但对于这一部署,我可以忽略这些功能,基本上就像静态网站一样。如果可以的话,我希望不必学习整个MS工具链(尽管我现在在Mac上的VM中有Win10,因为我必须这样做才能构建集线器无法运行的appx)。你能给我举一个webapp hello world的例子,让我看看这些天“相当直截了当”对微软意味着什么吗?(我已经15年没有编写MS特定代码了。)我找到了这个hello world示例。这就是你的建议吗?似乎使用这种方法来构建我们的应用程序需要800美元的Visual Studio副本,因为免费的“社区”版本不能被收入不可忽视的企业使用。-这是在Windows上构建和测试appx的一个好选项。你最喜欢的工具链是什么?最后,有一些命令行方法可以创建.appx包。我们制作这个yo生成器是为了帮助解决使用VisualStudio的问题。我们在OSX上使用各种shell脚本来进行构建。我将使用免费的VS版本来做一个原型,然后看看我是否能够根据VS在它创建的一个中放入的内容来自己生成.appx。我已经经历过一次清单生成,让Electron应用程序转换。我会通知你的。