在 Android 应用中使用 Web 内容

借助 Android,您可以在应用中充分利用 Web 的强大功能。因此,您可以灵活高效地展示特定类型的内容。

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

  • WebView:它会以内嵌方式显示您控制的 Web 内容,适用于您希望在自定义或更新界面时具有高度灵活性的情况。
  • Custom Tabs:由用户的默认浏览器提供支持的完整应用内浏览体验(请参阅浏览器支持),适用于以下情况:用户点击链接后,您希望他们留在应用内,而不是离开应用前往外部浏览器,并且大部分浏览体验都是开箱即用的。
Android 应用打开 Google Play,其中突出显示了主 WebView。 自定义标签页打开了“Android 开发者”网页,并突出显示。
图 1. `WebView`(左)和 `Custom Tab`(右)的轮廓。

为什么要嵌入 Web 内容?

在应用中嵌入 Web 内容有以下几大好处:

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

何时使用 Web 内容?

在 Android 应用中使用 Web 有三种主要应用场景:

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

  • 如果您希望在自定义或更新界面时拥有高度灵活性,请以内嵌方式展示您自己的 Web 内容,作为主要体验。
  • 在应用体验中以内嵌方式或窗口形式展示其他内容,例如广告、法律条款和法规或其他第三方内容。
Android 应用打开 Google Play,主 WebView 在红框中突出显示 Android 应用已打开,红框内显示辅助文本。
图 2. 使用 `WebView`作为主要内容(左侧)和辅助内容(右侧)嵌入到应用中的 Web 内容。

2. 使用 Custom Tabs 进行应用内浏览,或使用 WebView 满足更高级的用例需求

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

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

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

  • 某些应用会使用 WebView 为用户提供登录流程,包括使用特定于您应用的用户名和通行密钥(或密码)。这样,开发者就可以统一跨平台的身份验证流程。
  • 在链接到第三方身份提供方或登录体验(例如“使用…登录”)时,Custom Tabs 是理想之选。启动 Custom Tab 有助于保护用户的凭据,因为凭据会与第三方网站隔离开来。

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

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