首页 > 解决方案 > 托管 UWP 应用上的渐进式 Web 应用不适用于 HTTPS(自签名)

问题描述

托管在 IIS 上的 PWA Angular 应用程序(使用自签名证书的 HTTPS 绑定)正在由 UWP 应用程序访问(托管的 UWP:只是一个指向 PWA 应用程序的 UWP shell)。

当诸如 StartPage 和 Content URI之类的package.appxmanifest配置指向具有 HTTP 方案的 PWA 时,它运行良好(当然,由于需要 HTTPS,Service Worker 注册会引发错误)。但是,当我将 URL 更新为指向 HTTPS 时,UWP 仅显示一个没有错误的空白白屏(在调试 UWP 时在 VS2017 的 Javascript 控制台上)。

注意:在浏览器中使用 HTTPS 访问 PWA 可以正常工作。仅供参考,使用自签名证书。

简而言之:
PWA+BROWSER+(HTTP OR HTTPS) => OK
PWA+UWP+HTTP => OK
PWA+UWP+HTTPS (Self-Signed) => NG

标签: httpsuwpservice-workerprogressive-web-appsself-signed-certificate

解决方案


开发 PWA-UWP 时的常见限制:

  • 最低 Windows 10 版本:1809(从 EdgeHTML WebView 开始支持 Service Worker)
  • 在客户端设备上安装 SSL 证书(如果是自签名)
  • 应用 URL 必须以:https://<DomainName>(IP 地址不起作用)开头
  • 客户端设备必须启用开发者模式(必须允许旁加载应用程序)

警告:如果您计划使用以下 Visual Studio 模板来创建 UWP - PWA: Visual Studio 模板创建 UWP - PWA 请注意,应用程序 URL 应在构建应用程序时在 package.appxmanifest 中已知和配置。在我们的案例中,这是不可能的,因为我们正在构建一个本地 PWA。

但是,如果 App URL 是固定的,那么您可以使用 WinJs API 的全部功能。最好的部分是 WinJs API 访问代码可以写在你的 PWA 中,因此你的 UWP 项目只是一个 0 代码的 shell。


推荐阅读