可以将渐进式 Web 应用程序注册为 Android 中的共享选项吗?

Posted

技术标签:

【中文标题】可以将渐进式 Web 应用程序注册为 Android 中的共享选项吗?【英文标题】:Can a progressive web app be registered as a share option in Android? 【发布时间】:2016-11-06 10:45:24 【问题描述】:

新手问题总数。

Tl;dr - 可以将渐进式网络应用注册为 android 中的共享选项吗?

在 Android 中,我们可以将内容“共享”到其他已安装的 Android 应用。例如,假设我在我的 Android 设备上安装了适用于 Android 的 Chrome 和 Google+ 应用程序。我可以通过转到 Chrome 的汉堡菜单 → 共享... → Google+(以及其他已安装的本机应用程序列表)将我在 Chrome 中查看的网站共享到 Google+。可以在此已安装本机应用程序列表中注册渐进式 Web 应用程序吗? 如果是的话,你能告诉我一些例子或代码实验室吗? 如果没有,这个功能是在渐进式网络应用还是 Android 的路线图中?

【问题讨论】:

【参考方案1】:

是的。现在,您可以在 Android 版 Chrome 上通过 version 71+ 进行操作。

假设您已经掌握了 PWA 的所有基础知识(HTTPS、注册的 Service Worker 和清单),您只需将以下部分添加到您的 manifest.json

  "share_target":
  
    "action": "/share",
    "params":
    
      "title": "title",
      "text": "text",
      "url": "url"
    
  ,

如果您在任何阶段遇到困难,我会写更多 detailed tutorial。

【讨论】:

【参考方案2】:

最近以来,PWA 可以通过 manifest.json 将自己注册为共享目标。

请在此处阅读更多信息:https://developers.google.com/web/updates/2018/12/web-share-target

【讨论】:

【参考方案3】:

不,不幸的是,这是不可能的。

intent 系统主要用于原生应用。

您唯一能做的就是创建在 android 设备上被解析为意图并传递给本机应用程序的 URL,但它不能反过来,即从本机应用程序 -> 触发意图 -> 网络应用程序。这样做的主要障碍是网络应用无法表明它可以处理意图(在本机应用中通过 AndroidManifest 完成)。

【讨论】:

我们提出了一个 API 来解决这个问题:Web Share Target。 是的,现在可以在 Android Chrome 71+ 上使用。我在how to do it 上写了一篇教程。请记住,这是一项实验性功能,API 可能会更改或消失。

以上是关于可以将渐进式 Web 应用程序注册为 Android 中的共享选项吗?的主要内容,如果未能解决你的问题,请参考以下文章

渐进式Web应用(PWA)入门教程(下)

渐进式Web应用(PWA)入门教程(下)

[译]介绍一下渐进式 Web App(离线) - Part 1

“未捕获(承诺)的DOMException:无法为范围注册ServiceWorker”-脚本资源位于重定向后面,不允许使用

PWA 渐进式Web应用程序 - 解释

接收 Intent 到 Progressive Web App