2

当您将 Progressive Web App 放入 APK 以在 Goolge Play 上销售时,例如通过使用 Bubblewrap 和 Trusted Web Activity,PWA 无法与 Android API 交互。正确的?如果我误解了这一点,请纠正我并将我指向文档。

因此,即使它是一个 APK,并且它来自像 Google Play 这样的可信来源,它运行的代码 (Javascript) 也不会被允许执行普通 Android 应用程序可以执行的相同操作。这背后的理由是什么?Google 的使命是让 PWA 与原生应用程序一样强大,所以这对我来说毫无意义。

例如,我需要从我的 PWA 访问文件系统。我的意思是真正的访问,而不是像即将推出的本机文件系统 API 那样的中性访问。用户在安装时接受文件访问,然后我的应用程序可以做它想做的任何事情。所以我想我只是使用 Android API 来获得访问权限,但它们是不受限制的。你是如何在自己的 PWA 中解决这个问题的?

4

1 回答 1

0

当您将 Progressive Web App 放入 APK 以在 Goolge Play 上销售时,例如通过使用 Bubblewrap 和 Trusted Web Activity,PWA 无法与 Android API 交互。正确的?如果我误解了这一点,请纠正我并将我指向文档。

是的,没错,尽管它经常被重新考虑。

因此,即使它是一个 APK,并且它来自像 Google Play 这样的可信来源,它运行的代码 (Javascript) 也不会被允许执行普通 Android 应用程序可以执行的相同操作。这背后的理由是什么?Google 的使命是让 PWA 与原生应用程序一样强大,所以这对我来说毫无意义。

目标是启用为 Web 构建并使用标准化 Web 平台 API 的 PWA,作为本机应用程序的一部分打开(它可以是应用程序中的单个 Activity,也可以是应用程序具有其他 Activity)。

总体而言,您可以将 Web API 视为原生操作系统/API 之上的抽象层,它允许应用程序在许多不同的操作系统中运行而无需任何更改——开发人员不应该将他们的 PWA 分支到不同的操作系统。

提供对本机 API 的访问意味着开发人员将意味着两件事: 1 - 开发人员必须构建自己的抽象层来弥合操作系统之间的差距。2 - 应用程序的某些部分将停止在常规浏览器选项卡中工作(例如:当未在受信任的 Web 活动或其他操作系统中的等效项中打开时)。

因此,即使我们知道缺少 API 来启用每个可能的用例,我们还是倾向于通过Project Fugu将这些 API 启用为 Web API ,而不是直接访问本机 API。

我最近在 web.dev/live 活动上问过 PM 这个问题。这是视频的相关部分

例如,我需要从我的 PWA 访问文件系统。我的意思是真正的访问,而不是像即将推出的本机文件系统 API 那样的中性访问。用户在安装时接受文件访问,然后我的应用程序可以做它想做的任何事情。所以我想我只是使用 Android API 来获得访问权限,但它们是不受限制的。你是如何在自己的 PWA 中解决这个问题的?

我对Native File System API不是很熟悉。WICG Discourse 上有一个帖子,可能值得分享反馈。

最后,Trusted Web Activity 不应该是 Android WebView 的替代品,而是服务于稍微不同的用例。当 web 内容与 Android 应用程序紧密耦合时(例如:只应该在应用程序内部工作而不是在常规浏览器或其他操作系统中加载),为 WebView 开发将允许连接到所有本机 API(在支持许多 Web API(如推送通知等)的费用)。

于 2020-07-22T09:47:28.567 回答