从 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 的深度链接(独立版)的主要内容,如果未能解决你的问题,请参考以下文章

如何从 PWA 应用主屏幕链接中删除 Chrome 徽标(Android O 预览版)

独立 PWA 中断登录

保存到主屏幕的 Safari 网页卡在独立模式下

轻松理解什么是渐进式web应用

没有网站的 xamarin 应用程序的深度链接

从远程独立客户端调用 EJB