【问题标题】:Multiple PWAs in the same domain同一域中的多个 PWA
【发布时间】:2018-07-11 08:34:51
【问题描述】:

是否可以在同一端点下托管多个 PWA。比如说,我在 root 下有三个不同的 PWA,然后 root 应该以这样的方式托管这 3 个 PWA,即当我通过链接或菜单切换到任何其他应用程序时,它不应该在不同的窗口中打开。目前,每当我点击不同的应用程序时,它都会在不同的窗口中作为网络应用程序打开。

谢谢, 拉胡尔

【问题讨论】:

    标签: angular progressive-web-apps pwa


    【解决方案1】:

    您可以参考这个thread。它声明您可以使用范围应用程序来完成此操作。

    将您的manifest files 更新为 包含一个 scope 参数,其值为“app”应该的路径 被送达。

    "scope": "/r/aizumap/",
    

    "scope": "/r/naramap/",
    

    您仍然可以使用单个 Service Worker,但每个子应用 将需要在其路径中有一个尾随 / start_url/scope上班。

    这里有一个sample 和一个source,它们也可能会有所帮助。

    【讨论】:

    • 我认为这并不能满足问题的要求,但我认为这是正确的答案。您不能拥有两个具有相同范围的 PWA。
    【解决方案2】:

    你可以拥有多个 PWA

    1) 将应用拆分为多个 Web 应用,每个应用拥有一个 Manifest.json 和一个 service worker。

    2) 将其托管在不同的 URL 下

    当您只有一个 Manifest 和一个为一条路径注册的 SW 时,您不能拥有多个 PWA,因为这两件事本质上定义了一个具有唯一范围的唯一 PWA(可访问应用程序的 URL)

    【讨论】:

    • 当 iOS Safari 中的 PWA 添加到主屏幕时,iOS 会从 URL 中剥离目录,因此当您从主屏幕打开 PWA 时,它将只是 example.com
    • @chaserino 事实并非如此。 iOS 只会将 url 剥离到应用程序的根文件夹。我有一个位于 domain.com/da 的应用程序,iOS 不会删除 /da 部分。阅读您的评论后,我通过在 iOS 设备和互联网之间设置代理来确认它。从主屏幕打开应用程序后发出的第一个请求指向 domain.com/da。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-13
    • 2012-08-08
    • 2017-08-19
    • 1970-01-01
    • 2012-08-26
    • 1970-01-01
    • 2017-10-15
    相关资源
    最近更新 更多