0

Service Worker 只能安装在 HTTPS 域上。但是,我看到公司在其 https 域上托管 service worker 和 manifest.json 并能够在 http 域上注册的产品。

示例 - http://www.site1.com可以从https://cdn.site2.com注册 service-worker 。

谁能解释它是如何完成的?

4

1 回答 1

0

基本上这是他们如何做到的:

  1. 正如您所说,they host a service worker and manifest.json on their HTTPS domain(通常在您注册时选择的子域上)。

  2. You install their JavaScript client library on your website,并且如果您的网站未启用 HTTPS,他们会使用一种变通方法为访问者订阅推送通知,因为 Web 推送通知仅支持启用 HTTPS 的网站。

  3. 他们基本上创建了一个中间对话框,要求您的访问者订阅。当他们单击它时a pop-up window is opened to the HTTPS enabled subdomain,您之前选择的那个。因此,现在浏览器将能够请求许可并在其域上安全地订阅访问者。

之后,您将使用他们的网站或 API 发送所有通知,并且所有通知都将从他们的子域发送,因为下面可见的源将显示他们的 HTTPS 域而不是您的 HTTP 网站 URL。

于 2016-06-08T22:24:32.483 回答