托管 UWP 应用程序上的渐进式 Web 应用程序不适用于 HTTPS(自签名)
Progressive Web App on a hosted UWP app does not work with HTTPS (Self-Signed)
一个 PWA Angular 应用程序托管在 IIS 上(HTTPS 与自签名证书绑定),UWP 应用程序正在访问它(托管 UWP:只是一个指向 PWA 应用程序的 UWP shell ).
当 package.appxmanifest 配置(例如 StartPage 和 Content URI)指向具有 HTTP 方案的 PWA 时,它运行良好(当然 Service Worker 注册抛出一个错误,因为 HTTPS 是一个要求)。但是,当我将 URL 更新为指向 HTTPS 时,UWP 仅显示一个没有错误的空白屏幕(在调试 UWP 时在 VS2017 的 Javascript 控制台上)。
注意:使用 HTTPS 访问 PWA 在浏览器中工作正常。仅供参考,使用自签名证书。
简而言之:
PWA+浏览器+(HTTP 或 HTTPS)=> 确定
PWA+UWP+HTTP => OK
PWA+UWP+HTTPS(自签名)=> NG
开发 PWA-UWP 时的常见约束:
- 最小 Windows 10 版本:1809(自 EdgeHTML WebView 起支持 Service Worker)
- 在客户端设备上安装 SSL 证书(在自签名的情况下)
- 应用程序 URL 必须以:
https://<DomainName>
(IP 地址无效) 开头
- 客户端设备必须启用开发者模式(必须允许旁加载应用)
警告:
如果您计划使用以下 Visual Studio 模板来创建 UWP - PWA:
请注意,应用程序 URL 应该在构建应用程序时已知并在 package.appxmanifest 中配置。在我们的例子中,这是不可能的,因为我们正在构建一个本地 PWA。
但是,如果应用程序 URL 已修复,那么您可以使用 WinJs APIs 的全部功能。最好的部分是 WinJs API 访问代码可以写在你的 PWA 中,因此你的 UWP 项目只是一个 shell 和 0 代码。
一个 PWA Angular 应用程序托管在 IIS 上(HTTPS 与自签名证书绑定),UWP 应用程序正在访问它(托管 UWP:只是一个指向 PWA 应用程序的 UWP shell ).
当 package.appxmanifest 配置(例如 StartPage 和 Content URI)指向具有 HTTP 方案的 PWA 时,它运行良好(当然 Service Worker 注册抛出一个错误,因为 HTTPS 是一个要求)。但是,当我将 URL 更新为指向 HTTPS 时,UWP 仅显示一个没有错误的空白屏幕(在调试 UWP 时在 VS2017 的 Javascript 控制台上)。
注意:使用 HTTPS 访问 PWA 在浏览器中工作正常。仅供参考,使用自签名证书。
简而言之:
PWA+浏览器+(HTTP 或 HTTPS)=> 确定
PWA+UWP+HTTP => OK
PWA+UWP+HTTPS(自签名)=> NG
开发 PWA-UWP 时的常见约束:
- 最小 Windows 10 版本:1809(自 EdgeHTML WebView 起支持 Service Worker)
- 在客户端设备上安装 SSL 证书(在自签名的情况下)
- 应用程序 URL 必须以:
https://<DomainName>
(IP 地址无效) 开头
- 客户端设备必须启用开发者模式(必须允许旁加载应用)
警告:
如果您计划使用以下 Visual Studio 模板来创建 UWP - PWA:
但是,如果应用程序 URL 已修复,那么您可以使用 WinJs APIs 的全部功能。最好的部分是 WinJs API 访问代码可以写在你的 PWA 中,因此你的 UWP 项目只是一个 shell 和 0 代码。