每周技术译文|因为 PWA,Android 和Chrome 之间会有冷战吗

android studio 教程 | 2018-12-17 12:33

这是本系列的第 02 篇推送

what? 你怎么能这样说? 安卓拥有当今最好的 PWA 体验啊!

安卓? 还是安卓上的 Chrome? 而且......这是最好的体验吗?

Google 目前就像是一颗恒星,有不同的行星在它的轨道上运行,比如 「chrome 星」 和 「Android 星」。不是所有的行星都是绕着同一个轨道运行,所以很多时候我们都没有看到碰撞和日食。

在 web网站 和 PWA 社区中普遍认为苹果是对支持 PWA 业务和体验最差的,可能是因为苹果不希望 web 应用占据 App Store 的业务市场,但是在谷歌这边怎么样呢,好点吗?

Android 和 Play 商店团队是否对平台上的 PWA 开放呢? 似乎不是那样的。

我认为安卓和 Chrome 之间存在一场无声的战争,前者看起来领先。如果安卓团队可以进一步推动 PWA 的话, PWA 是可以在安卓获得更好的体验的,同时可以拥有更多的支持者,让一些有改变游戏规则的人有能力进入平台。

这不仅仅是我的观点; 这是我培训过交流过的每家公司对 PWA 的看法。当我解释当前的状态和限制时,他们总是说同样的话。

我主要观察到的是:

在 Chrome 上缺乏一个为用户提供了清晰明了的用户界面来正确的引导安装(添加到主屏幕 vs 安装)

缺乏 Play 商店对 PWA 的支持

平台缺乏营销推广和开发人员信息

Chrome 想要的是 PWAs,但在试图将其与安卓生态系统集成时,似乎遇到了障碍。新的 API 和特性很棒!但是如果我们不能改善推广,那就不值得了。

译者注: Alphabet 是 Google 母公司

让我们开始明确区分谷歌(或 Alphabet)、Chrome 和 Android。大多数人会认为 Chrome 和 Android 应该有相同的目标,但他们可能不会。例如,对于媒体、开发者、文档、视频、营销和需要实现的目标(Kpi),它们通常有完全分离的领域。 大多数时候,我看到他们地在 Google IO 中无声「战斗」以引起注意。我记得几年前,Chrome 团队的每个人都很疯狂——不管是在公开在 Twitter 上还是私下里,都在为 Android Instant Apps (译者注:类似于微信小程序, 你在安卓手机上,朋友给你发来一个链接,那个链接方具有安卓应用并支持 Instant Apps的话。你点击了这个链接,不用安装它的 Android 应用)在 IO 大会上占据的所有狂热和市场而疯狂,这损害了 PWA 作为一个平台的形象。

安卓用户不参加 Chrome 开发者大会。Chrome 用户不参加安卓的。即使两种产品都需要对方,像 PWAs 这样的东西也应该触及到双方。但是它们通常不会一起出现在公众视野中。Chrome OS 帮不了忙,而且它似乎处于中间位置,被从两边拉过来(几乎不是从安卓)。

PWA 是 Chrome 团队在没有安卓团队支持的情况下推出的。事实上,好像是另一种方式。

目前的 PWA 架构基于 Apple 的 iOS 主页屏幕 web 应用程序,您可以使用「添加到主屏幕」选项并在 iPhone 或 iPad 主屏幕中插入图标。 Chrome也同样在安卓中使用「添加到主屏幕」的方式在主屏幕中创建快捷方式。

一年前,Android 8 在其发布时改变了它管理主屏幕图标的方式,从而对浏览器的每个 PWA 创建了一个糟糕的体验。难道安卓团队没有和 Chrome 团队没有交流,哪怕是至少为了保持良好的体验?几个月后,Chrome 发布了 WebAPK,也就是改进的添加到主屏幕的方式,这是一个解决这个问题的方法,也是 PWA 在安卓上的下一步。

在安卓上从 Chrome 安装 PWA 时启用了 WebAPK,服务器端会编译 APK(原生安卓打包程序),Play 商店会对其进行注册,Chrome 会将其推送到您的安卓手机中。您的手机会安装 APK,因为它是由商店注册的,无需任何用户干预,也不会禁用任何安全规则。

使用 WebAPK,您的 PWA 将作为系统中的和其他原生应用程序一样的程序显示在系统中。 如果这不是添加的方式,为什么谷歌仍然使用「添加到主屏幕」的信息栏和菜单选项? 我们是正在「安装」一个应用程序呀。

多年来,Google 尝试使用不同的说法,例如只使用「添加」(添加到哪里?)或「添加到主屏幕」(当前版本)。 您在非 PWA 网站上看到的是「添加到主屏幕」。为什么安卓上的 Chrome 没有使用「安装」?

使用 Chrome 的 PWA 现在可兼容 Windows,Linux,Chromebook 和 Mac。你知道它的说法吗?你猜怎么着? 是「安装」。

如果您在 Windows 上使用 Chrome,则是「安装」PWA。 如果您在安卓上使用 Chrome,则是「添加到主屏幕」。 真的吗? 那么有一致性?

如果你再深入了解,你会发现 Chrome 团队在不同的文章和视频中建议我们自定义的安装的 UI,这是一个好主意,但很多 PWA 都没有使用。建议涉及「安装」的使用。那么,我是否应该创建一个带有「安装」的按钮,而不是在单击时触发一个添加对话框?是否一致?

即使从规范的角度来看,我们讨论的是安装,但是可用的新窗口事件称为「appinstalled」 ,安装对话框称为「beforeinstallprompt」。

当它只是一个快捷方式并且只添加主屏幕中的图标时,「添加」到主屏幕可能很好。 但是现在是安装的 APK 不仅仅出现在主屏幕上,那么为什么 Chrome 会保留这些与实际不符的话术呢?

因此,Chrome 正在使用或建议在任何地方使用「安装」,但不会在 Android 版本中使用。是不是因为 Android 团队在某种程度上在内部竞争,不允许在 Chrome 中使用这个词?这只是猜测,除非......给我另一个好理由。

感觉 Chrome 团队在任何地方使用「安装」字样,他们鼓励我们在自己的 UI 中同样使用它,但他们无法更改安卓的 UI。 我并不认为移动用户习惯于使用「添加到主屏幕」,因为如果他们已经习惯了(我不认为这是真的),PWA 应该就是网站快捷方式,而不是应用程序。

WebAPK 只有在安卓系统上使用 Chrome 时才可用,这使得谷歌浏览器在在同一操作系统上比使用 Firefox、Samsung Internet、Edge 或 UC 中更有优势。因为其他浏览器只有 PWA 的快捷版本,通常带有浏览器的标记,没有所有常规的原生应用程序功能,比如位于系统的启动程序中。虽然 Chrome 团队提到 WebAPK 将可能对其他浏览器开放,但一年多过去了,却没有任何关于它的消息。

我知道这样做可能并不简单,但是,如果 Play 应用商店或安卓团队想要在平台上开放,这是必须要做的事情。

如果您认为添加与安装之争没有那么重要,那么我们接下来说的是最糟糕的部分。许多 PWAs 想在应用商店里;这优势是一个不同的推广渠道。

我记得在 2017 年 Chrome 开发者大会主题演讲之后,团队提到了 Windows Store PWA 提案,大家都很兴奋等待下一张幻灯片。每个人都在期待:「现在你也可以在 Play 商店中发布 PWA」,但并没有这样。

Play 商店没有提供在商店中发布 PWA 的任何解决方案。

而这个推广渠道是一个能改变游戏规则的方式。

因为很多小公司都想进驻;不管这是真的还是假的,他们认为用户会在那里找到他们的应用。此外,许多公司的许多没有更新的或者过时的原生应用程序希望用 PWA 来取代这些应用程序。但是它们仍然需要维护两个视图,并且强迫 PWA 开发人员使用 Web View,这并没有任何优势。恰恰相反。

Twitter 和 Instagram 现在也想在在商店中拥有 PWA,即 「Lite」(精简版) 版本。 但这些应用程序是使用 Android Studio 构建的,其中包含许多用于推送管理和其他操作系统集成的需要用 Java / Kotlin 原生系统代码。 此外,他们必须使用 Web View 而不是完整的 Chrome 引擎,而不是与浏览器的对应方共享存储,缓存,文件或 API 可用性。 如果您不是安卓开发人员,那将是很多工作。

Google 在商店中拥有 PWA,例如 Google Maps Go,它甚至可以在每个 Android Go 版本中预安装桌面启动器。

所以每个人都希望在商店中使用 PWA,而不是 Play 商店

由于在 Chrome 中启用了 WebAPK,因此已经有一个由 Play 商店注册发布的安卓软件包已准备好在商店中列出。 为什么在启用 WebAPK 后超过 14 个月后这还不能可行?为什么作为发布者,我没有 App Store的「发布URL」按钮? 有什么问题?

在 2017 年的 Chrome 开发峰会上,我们没有得到任何消息要 PWA 能在商店里发布,但是,我们有一个关于 TWAs(Trusted Web Activities)的声明。原生安卓应用程序可以在独立模式下在验证过的 URL 上打开 Chrome 活动(屏幕),也就是说,您将能够创建一个APK,作为您的 PWA 的快捷方式。

太棒了!我们最终会为商店提供一些解决方案的支持。

Chrome 发布了一篇关于它的文章,其中包含技术细节和稳定的路线图:可参考 Chrome 69,2018年第四季度初更新的视频。但是如您所知,我们目前处于 Chrome 71 稳定状态。

所以,在之前召开的 Chrome 开发者峰会,我期待着 TWAs 的更新。但是什么信息都没有得到。Chrome 上有很多很酷的新想法和 api,唯独没有 TWA。

我不知道它是不是延迟,还是被取消。 我希望这只是一个延迟,但在任何被提及的公共场所都看不到任何更新是很奇怪的。

最近一次更新是已经是去年 7 月

但无论如何,如果我们明年晚些时候能推出并运行 TWA,我认为这仍然是一种解决方法,Chrome 可以通过一种简单的方式来发布 URL 来绕过 Play Store 的限制。

我从来没见过安卓员工提到过 PWA。对于第一次尝试进行应用程序开发的开发人员来说,没有文档,没有技术信息。事实上,从安全性和用户的角度来看,并没有关于 WebAPK 的信息。没有任何地方可以让你明白为什么安卓系统上的 PWA 会说它是从的 Play Store 安装的话实际上它可能是一个钓鱼应用。

developer.android.com 中唯一的参考是「基于 Web 的内容」指南,该指南指定「如果您想将用户发送到移动网站,请构建渐进式Web应用程序(PWA)」,没有任何意义。

这不是我第一次提到这个。 在最新的 Google IO 大会中,我一直在强调 PWA 和 Web 每年的会议记录更少,以及这对新闻媒体和大公司对这个平台的看法会不会有负效应。

此外,搜索引擎谷歌目前正在标记 AMP 站点、安卓应用程序和即时应用程序,但经过三年的推广,甚至是不是投入资金支持 PWA,目前还没有公开计划,或以某种方式在搜索引擎中推广 PWA。

我也看到 Chrome 团队在过去几个月里谈论 PWA 的方式发生了变化。我看到更多的是 web 平台,web,而不是应用程序部分。像安装图标这样的想法对于用户来说只是一个辅助工具,无论如何它都不是那么重要在现在的对话中更加常见。

我们知道 PWA 只是 web程序,但应用程序部分是该平台的重要推广点啊。这是因为 Chrome 正在失去在安卓上提供基于应用程序的平台的斗争吗?我不确定,但我会很高兴被证明是错的。

此外,问题甚至出现在 Chrome OS 和 Chromebook 上。当您查看所有文档和推广信息时,一切都是关于运行安卓应用程序,而不是关于 PWA,即使它是第一个支持 PWA 的桌面平台。 因此,Chrome 无法在 PW OS 材料中使 PWA 变得重要。

如果 Chrome 和安卓之间存在冷战,我们社区必须发声。Chrome 团队正在大力推动 Web 平台和 PWA,并且他们做得很好。但这还不够; 在 安卓上,它仍然存在风险,虽然现在可以运行,但如果没有安卓团队明确的公开支持,我们不确定一切都会在下一版操作系统上按预期工作。

从 Android 7 到 Android 8 的变化就是一个例子。如果 PWA 平台出现问题,团队是否相互沟通? 安卓团队是否有兴趣为 PWA 保持良好的用户体验?

如果您认为 Apple 不希望在 iOS 上获得良好的 PWA 体验,请记住 Google 与安卓和 Play Store 团队可能需要相同的东西。未来的 Fucshia 操作系统可能会将安卓和 Chrome 操作系统合并,这使得 Web 能否做为一个应用平台的支持前景很不确定。

我们仍然希望能够推动这些变革。我知道 Chrome 是热爱 Web 的,但是如果谷歌热爱 ️Web,我们需要看到它的动作,而不仅仅是屏幕上的幻灯片。