在 Android 应用中使用 Web 内容

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

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

  • WebView:用于在您需要高度灵活地自定义或更新界面的位置,显示您控制的内嵌 Web 内容。
  • 自定义标签页:一种由用户的默认浏览器(请参阅浏览器支持)提供支持的完整应用内浏览体验,适用于以下情况:当用户点击链接时,您希望他们留在应用中,而不是离开到外部浏览器,并且大部分浏览体验都是开箱即用。
Android 应用打开 Google Play,其中主网页视图用红色框突出显示。 自定义标签页已打开“面向开发者的 Android”网页,以红色框突出显示。
图 1. WebView(左)和自定义标签页(右)用红色勾勒。

为什么要嵌入 Web 内容?

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

何时使用网页内容?

在 Android 应用中使用 Web 有三个主要用例:

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

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

2. 使用自定义标签页或 WebView 进行应用内浏览(适用于更高级的用例)

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

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

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

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

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

应用内登录字段,左侧显示 WebView。 右侧带有“自定义”标签页的第三方登录页面。
图 4. 应用内登录字段(左)和在自定义标签页中打开的第三方登录(右)。