可以将渐进式 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 App(离线) - Part 1
“未捕获(承诺)的DOMException:无法为范围注册ServiceWorker”-脚本资源位于重定向后面,不允许使用