在 Android 应用中使用 Web 内容

Android 允许开发者在应用中利用 Web 的强大功能,因此您可以受益于能够显示某些类型内容的灵活性和效率。

这样一来,您就可以将现有的 Web 内容无缝集成到原生 Android 应用中,例如显示新闻 Feed、显示互动式教程、展示广告,甚至托管迷你游戏,而无需从头开始构建所有内容。您可以将其视为应用中的一个互联网窗口。您可以通过以下两种方式将网络内容嵌入到应用中:

  • WebView:它会以内嵌方式显示您控制的网页内容,让您能够灵活地自定义或更新界面。
  • 自定义标签页:一种由用户默认浏览器提供支持的完整应用内浏览体验(请参阅浏览器支持),当用户点击链接时,您希望他们留在应用中,而不是前往外部浏览器,并且开箱即可获得大部分浏览体验。
Android 应用打开 Google Play,主 WebView 用红色框突出显示。 自定义标签页打开了“Android 开发者”网页,该网页已使用红色方框突出显示。
图 1.以红色轮廓显示的 WebView(左)和自定义标签页(右)。

为什么要嵌入网页内容?

  • 效率:重复使用网站中的现有代码。基于现有的 Web 技术和内容。
  • 集成:在应用中利用第三方提供商提供的外部内容,例如媒体、广告。
  • 灵活性:动态更新内容,不受预定义界面限制,也无需发布应用更新。

何时使用网页内容?

在 Android 应用中使用 Web 有以下三种主要用例:

1. 将 Web 内容作为主要内容或辅助内容嵌入到应用中:使用 WebView

  • 以内嵌方式显示您自己的网页内容,作为主要体验,以便您灵活地自定义或更新界面。
  • 在应用体验中以内嵌方式或窗口形式显示其他内容,例如广告、法律条款和法规或其他第三方内容。
Android 应用打开后显示 Google Play,主 WebView 用红色框突出显示 Android 应用打开,其中包含支持的文字,文字位于红色框内。
图 2. 应用内嵌的网页内容,其中 WebView 为主要内容(左侧),支持内容(右侧)。

2. 使用自定义标签页进行应用内浏览,或使用 WebView 实现更高级的用例

  • 当用户点击链接时,您希望他们留在应用中,而不是前往外部浏览器,这时您就可以提供完整的应用内浏览体验。
    • 注意:对于平板电脑和可折叠设备等大屏设备,还有一些其他选项可帮助应用利用额外的空间:
    • 应用可以使用启动相邻的多窗口体验在分屏模式下打开网页链接。这样一来,用户就可以同时在您的应用和浏览器之间执行多项任务。或
    • 自定义标签页具有可在同一任务中打开的侧边栏选项,但会显示在现有应用内容旁边。
  • 自定义标签页由用户的默认浏览器提供支持(对于支持自定义标签页的浏览器)。
    • 虽然可以使用 WebView 提供高度可自定义的应用内浏览体验,但我们建议使用自定义标签页,以便提供开箱即用的浏览器体验,并在用户想要在浏览器中打开网页链接时实现无缝过渡。
网页左侧的红色方框中包含应用内链接,右侧显示应用内浏览器。
图 3. 点击应用内链接(左)并打开应用内浏览器(右)。

3. 应用内的登录或身份验证流程

Android 建议使用 Credential Manager 构建登录或身份验证流程。如果您发现仍需使用嵌入式 Web 来实现这些体验,请遵循以下指南:

  • 有些应用使用 WebView 为用户提供登录流程,包括使用特定于应用的用户名和通行密钥(或密码)。这使开发者能够统一跨平台的身份验证流程。
  • 当链接到第三方身份提供商或登录体验(例如“使用…账号登录”)时,自定义标签页是理想之选。启动自定义标签页可确保用户的凭据受到保护,并与第三方网站隔离开来。

如需详细了解如何利用 WebView 进行身份验证,请参阅使用 WebView 对用户进行身份验证。 如需了解如何启动自定义标签页,请参阅 Android 自定义标签页概览

应用内登录字段,左侧为 WebView。 右侧是使用自定义标签页的第三方登录。
图 4. 应用内登录字段(左)和在自定义标签页中打开的第三方登录页面(右)。