WebView
Desenvolvimento Mobile
Aplicativos Híbridos
Produto Digital
Arquitetura de Software

应用程序中的 WebView:它是什么以及何时使用它有意义

WebView 是一个功能强大但人们了解甚少的工具,用好它意味着知道它在哪里有帮助,在哪里会造成损害。

应用程序中的 WebView:它是什么以及何时使用它有意义

许多人使用过一个应用程序,但他们并不知道它实际上是一个在外壳内运行的网站。屏幕加载时间稍长,滚动看起来略有不同,当您点击某些内容时,会出现类似于浏览器的加载指示器。这就是 WebView 的作用,它出现在比您想象的更多的应用程序中。

WebView 是移动开发中最有用、同时也是最容易被误解的概念之一。用得好,可以节省时间和金钱,解决实际问题。如果使用不当,它会提供一种不冷不热的体验,从而疏远用户并损害产品的感知。

这篇文字是一个介绍。如果您是创始人、产品经理或刚刚进入移动世界,并且听说过 WebView 但没有真正了解它是什么,这里是概述:它是什么、它如何工作,以及最重要的是,何时使用它有意义。

实践中什么是 WebView

WebView 本质上是一个没有地址栏的浏览器,嵌入在应用程序中。它允许应用程序显示 Web 内容、HTML 页面、整个 Web 应用程序,就像它们是本机屏幕一样。

从用户的角度来看,通常没有明显的区别:他们打开应用程序、导航、使用它。然而,在下面,该屏幕并不是用操作系统的本机组件构建的。它是在容器内呈现的网页。

Android 和 iOS 均正式提供此组件。换句话说,WebView 不是黑客,它是一个合法的工具,并受到平台本身的广泛支持。问题从来不是“是否允许?”,而是“在这种情况下这是正确的选择吗?”。

为什么存在这种方法

WebView 存在的原因很简单:重用。如果您的公司已经拥有功能齐全的网站或 Web 应用程序,则在应用程序中显示它可以避免为每个平台从头开始重建所有内容。

实际上,构建真正的本机应用程序意味着为 Android 和 iOS 维护单独的代码库,每个代码库都有自己的语言、团队和周期。它既昂贵又耗时。 WebView 提供了一种快捷方式:使用 Web 技术编写一次界面,然后在任何地方显示它。

这种快捷方式具有真正的价值,特别是对于那些需要快速启动并运行某些内容、验证想法或维护经常更改的内容的人来说。但是,就像每一条捷径一样,它都是有代价的,而明白价格是区分好决定和天真的决定的关键。

论文:WebView 没有好坏之分,只是一个权衡

我经常听到的问题是“WebView 是好是坏?”。问题是错误的。 WebView 是一种交换,重要的是知道你在交换什么。

您可以获得开发速度、跨平台共享代码以及易于更新。您会在不同程度上失去性能、流畅性以及对设备资源的完全访问权限。在某些产品中,这种交换效果非常好。对另一些人来说,这是灾难性的。

那些将 WebView 视为通用解决方案的人,“让我们在 WebView 中做所有事情来省钱”,当产品不断增长并且不冷不热的体验开始让用户付出代价时,他们往往会后悔。任何原则上拒绝它的人,“WebView 是为业余爱好者准备的”,都浪费了一个可以优雅地解决问题的工具。技术成熟度是了解每种方法所属的位置。

当 WebView 有意义时

在某些情况下,WebView 是明智的选择,而不是权宜之计。

当内容频繁变化时,使用条款、政策、帮助页面、新闻中心,将其嵌入到应用程序中没有什么意义,并且必须在每次文本调整时启动新版本。在 WebView 中,您更改页面,并且更改会立即显示给每个人。

当您已经拥有成熟的 Web 应用程序并希望快速上市时,WebView 可以让您以更少的投资进入市场。在大量投资之前验证一个应用程序是否值得,这是一个合理的策略。

当预算和团队有限,并且替代方案是根本没有应用程序时,制作精良的 WebView 产品总比没有好。在许多实际情况下,最优是可能的敌人。

当 WebView 妨碍时

另一方面,在某些情况下坚持使用 WebView 是错误的。

价值主张是体验、流畅性、动画、触摸即时响应、质量感的应用程序在 WebView 中受到影响。用户可能无法解释为什么,只是觉得“奇怪”。在竞争激烈的市场中,这种微妙的差异决定了谁留下来,谁离开。

深度依赖于硬件、具有实时处理功能的摄像头、传感器、密集离线使用、特定于系统的集成的功能在 WebView 中会遇到摩擦。解决其中一些问题是可能的,但解决问题的努力有时会抵消促使做出选择的节省。

而且在更普通的设备上还存在性能问题。在巴西,大部分基地都使用中间设备,繁重的网络界面可能会卡在本地界面上。在不考虑用户的真实设备的情况下决定使用 WebView 是在黑暗中做出的决定。

限制和陷阱

最常见的陷阱是,当决策是产品决策时,将其视为纯粹的技术决策。正确的问题不是“我们更喜欢哪种技术?”,而是“我们的用户需要什么体验,我们愿意为此付出什么代价?”。

另一个陷阱是“全有或全无”的谎言。许多精心构建的产品都是混合体:关键的本机屏幕(其中体验很重要)和次要的 WebView 屏幕(其中重用会带来回报)。你不必终生选择一方。好的架构根据每个屏幕的价值进行混合。

还有一个安全点从一开始就值得关注:WebView 承载着 Web 内容,而 Web 内容也承载着 Web 的关注点。从不受信任的来源加载页面或将敏感功能暴露给加载的内容打开了纯本机应用程序不会拥有的大门。这不是避免使用 WebView 的理由,而是谨慎使用它的理由。

为用户服务的才是正确的选择

归根结底,WebView是一个工具,而工具没有道德,只有应用。问题永远不应该是 WebView 是否好,而应该是它是否满足您的产品需要提供的服务、您的预算和您的真实用户。

那些理解这一点的人将停止基于意识形态讨论技术,并开始根据背景做出决定。有时答案是本机,有时是 WebView,通常是两者的巧妙组合。成熟就是清楚地选择,清楚地知道自己得到什么、放弃什么。

如果您正在决定应用程序的架构,并且不确定本机、混合还是 WebView,那么在做出将困扰您多年的选择之前值得进行讨论。我的博客上还有有关移动开发和数字产品的其他文字,我想帮助那些正在做出决定的人。

另请阅读

  • [原生Android开发:决定应用未来的基础0
  • 【日常生活中的WebView:app的运维有哪些变化1
  • [应用程序的未来:避免落后的工具清单2
  • [何时使用 PWA3
  • [应用程序中的WebView:Escalar简介4
  • [初创公司申请-日常清单5