从 Web 到 PWA 的深度链接(独立版)
Posted
技术标签:
【中文标题】从 Web 到 PWA 的深度链接(独立版)【英文标题】:Deep linking from Web to PWA (Standalone Version) 【发布时间】:2018-02-09 06:38:02 【问题描述】:我有一个网络应用程序,由于 PWA 标准,它可以作为独立应用程序安装在主屏幕中。
当用户忘记密码时,系统会向他发送一封电子邮件,其中包含重置密码的链接。
我可以在 chrome 浏览器中深度链接到已安装的独立版本而不是 Web 应用程序吗?我想实现这种行为:
用户点击来自 gmail 应用程序的电子邮件链接。 操作系统检查链接是否与系统中预先注册的任何 url 架构匹配(这是我现在不知道是否可以从网络上执行的步骤) 如果找到,请打开独立版本。否则,请打开浏览器。【问题讨论】:
【参考方案1】:在 Web App Manifest 中配置 android Intent 过滤器,如 here 所示
【讨论】:
问题是关于 PWA,而不是 Android。这是一个无效的答案。 实际上这个答案是关于 PWA 的,它是关于“添加到主屏幕”提示的,所以它是无效的,因为它与意图过滤器无关,而不是因为它与“Android”有关,无论你的意思是什么。 【参考方案2】:在 json here 中有一个描述意图过滤器的例子。清单的相关部分是intent_filters
"manifest_package": "org.chromium.webapk.test",
"scope_url": "https://pwa.rocks/",
"intent_filters":
"scope_url_scheme": "https",
"scope_url_host": "pwa.rocks",
"scope_url_path": "/"
,
"start_url": "https://pwa.rocks/",
"display_mode": "standalone",
"orientation": "portrait",
"theme_color": "2147483648L",
"background_color": "2147483648L",
"icon_urls_and_icon_murmur2_hashes": "http://www.pwa.rocks/icon1.png 0 http://www.pwa.rocks/icon2.png 0",
"web_manifest_url": "https://pwa.rocks/pwa.webmanifest",
"version_code": "1",
"version_name": "1.0",
"bound_webapk":
"runtime_host": "org.chromium.chrome",
"runtime_host_application_name": "Chromium"
【讨论】:
链接已损坏。 感谢您指出这一点。我更新了链接并在答案中包含了完整的清单。 它是否也适用于 PWA ios 和桌面设备? 我认为这不适用于任何浏览器。我已经在 iOS Safari 和 Android Chrome 中对其进行了测试,但它们都不起作用。是我遗漏了什么还是该功能被删除了? 该功能仍在 Chrome Android 中。需要安装 PWA 才能正常工作。在 PWA 安装过程中,有很多事情可能会出错。你可以在这里阅读更多:developers.google.com/web/updates/2015/12/getting-started-pwa【参考方案3】:如果您在manifest.json
文件中正确设置scope
,其他应用程序中的所有链接都将在独立版本中打开,而不是在浏览器中打开。请注意,浏览器中的链接仍将首选浏览器版本而不是独立版本。例如:
"start_url": "/",
"scope": "/",
"display": "standalone"
注意:从地址直接导航到https://example.com/app/ bar 的工作方式与原生应用程序的工作方式完全相同 意图过滤器。 Chrome 假定用户打算访问该网站 并将打开此站点。
来源:developers.google.com/web/fundamentals/integration/webapks
【讨论】:
以上是关于从 Web 到 PWA 的深度链接(独立版)的主要内容,如果未能解决你的问题,请参考以下文章