我的应用程序目前正在使用Electron for Windows桌面部署。用户界面的大部分是普通的JS / CSS / HTML5,节点部分主要是将数据导入chrome部分的基础设施。它几乎就是人们用来称呼WebApp"在Firefox和Chrome离开这个想法之前。
我能够使用makeappx将这个现有的Electron应用程序转换为UWP,我甚至将它带入了Window Store,但却发现Surface Hub拒绝运行它,因为它不是"纯粹&#34 34; UWP,而是一个看起来像UWP的Win32应用程序。我需要在Surface Hub上运行。
该应用程序在Edge中运行良好,但我的客户需要能够在没有互联网连接时使用该应用程序。
我的下一个想法是将应用程序放到闪存驱动器上,然后将Edge指向该位置。当然,浏览file:// URL并不适用于此硬件,因此无法正常工作。
我的下一个想法是,我可以构建一个简单的HTTP服务器,将其放入存储中并烘焙内容(或从闪存驱动器中读取内容),然后让它们将Edge指向localhost。但是,我发现一大堆文档说在Windows应用商店应用中禁止使用环回设备。 (那里有针对企业应用程序的解决方法,但我不知道这是否可以在Surface Hub上运行,并且客户端真的只想从Windows应用商店安装而不必做任何奇怪的事情。) / p>
一年前有一些关于微软制作一些技术的讨论,以便轻松将网络应用移植到Windows桌面。我找到了" Windows 10 Hosted Web Apps"但这似乎只是在网站上创建一个网上商店容器。在我的情况下,网站将无法使用,因为他们需要离线运行。似乎不是"没有托管"据我所知,Web App选项。
当Chrome确实托管了网络应用时,我设法使用离线清单说服浏览器在您第一次运行时下载整个应用。但这从未可靠地发挥作用,因为Chrome会毫无理由地自发地抛弃Caches。由于Surface Hub会在你结束会话时积极地抛弃缓存,我怀疑这种方法也不会起作用。 (我发现去年的一个Windows博客条目似乎在描述这个技巧,并称之为Progressive Web Apps或PWA;但是,由于它基于缓存工作者,我对Surface Hub的关注只是把它扔掉了。)
那么,如何让我的网络应用在Surface Hub上脱机工作?如果有帮助的话,我非常乐意将闪存驱动器作为解决方案的一部分。
- 更新 -
参见接受的答案。事实证明,您不需要开发人员工作室来执行此操作。如果您创建AppxManifest.xml文件并将整个Web应用程序放入文件夹,则可以使用MakeAppx.exe将其全部捆绑。请注意,Windows应用商店有一些奇怪的要求,例如您的UTF-8文件需要前面的BOM。
答案 0 :(得分:1)
对于您的Electron应用程序,您使用的是任何本机模块吗?通常,如果您不依赖于本机模块,则创建Windows Web应用程序非常简单。对于Windows Web应用程序,您可以非常轻松地将本地内容与远程内容混合使用。