Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Android cho phép bạn tận dụng sức mạnh của web trong các ứng dụng của mình. Vì vậy, bạn có thể hưởng lợi từ tính linh hoạt và hiệu quả khi có thể hiển thị một số loại nội dung nhất định.
Điều này cho phép bạn tích hợp liền mạch nội dung web hiện có vào ứng dụng Android, chẳng hạn như để hiển thị nguồn cấp tin tức, hướng dẫn tương tác, quảng cáo hoặc thậm chí lưu trữ một trò chơi nhỏ mà không cần xây dựng mọi thứ từ đầu.
Hãy coi đây là một cửa sổ kết nối với Internet ngay trong ứng dụng của bạn. Có 2 cách để nhúng nội dung web vào ứng dụng:
WebView: Thành phần này hiển thị nội dung web mà bạn kiểm soát trực tuyến ở nơi bạn muốn có mức độ linh hoạt cao trong việc tuỳ chỉnh hoặc cập nhật giao diện người dùng.
Custom Tabs: Trải nghiệm duyệt web đầy đủ trong ứng dụng do trình duyệt mặc định của người dùng cung cấp (xem thông tin hỗ trợ trình duyệt) khi người dùng nhấp vào một đường liên kết và bạn muốn giữ họ trong ứng dụng thay vì chuyển sang một trình duyệt bên ngoài, với phần lớn trải nghiệm duyệt web có sẵn.
Hình 1. `WebView` (bên trái) và `Thẻ tuỳ chỉnh` (bên phải) được đánh dấu.
Tại sao nên nhúng nội dung trên web?
Việc nhúng nội dung web vào ứng dụng mang lại một số lợi ích:
Tính hiệu quả: Sử dụng lại mã hiện có trên trang web của bạn. Xây dựng dựa trên các công nghệ và nội dung hiện có trên web.
Tích hợp: Sử dụng nội dung bên ngoài của các nhà cung cấp bên thứ ba (chẳng hạn như nội dung nghe nhìn và quảng cáo) trong ứng dụng của bạn.
Tính linh hoạt: Cập nhật nội dung một cách linh động mà không bị giới hạn ở giao diện người dùng được xác định trước hoặc không cần phát hành bản cập nhật ứng dụng.
Khi nào nên sử dụng nội dung trên web?
Có 3 trường hợp sử dụng chính để sử dụng Web trong ứng dụng Android:
Hiển thị nội dung web của riêng bạn dưới dạng nội dung chính khi bạn muốn có mức độ linh hoạt cao trong việc tuỳ chỉnh hoặc cập nhật giao diện người dùng.
Hiển thị nội dung khác như quảng cáo, điều khoản và quy định pháp lý hoặc nội dung khác của bên thứ ba dưới dạng nội tuyến hoặc dưới dạng cửa sổ trong trải nghiệm ứng dụng của bạn.
Hình 2. Nội dung trên web được nhúng trong ứng dụng bằng các `WebView`làm nội dung chính (bên trái) và nội dung hỗ trợ (bên phải).
2. Duyệt web trong ứng dụng bằng Custom Tabs hoặc WebView cho các trường hợp sử dụng nâng cao hơn
Mang đến trải nghiệm duyệt web đầy đủ trong ứng dụng khi người dùng nhấp vào một đường liên kết và bạn muốn giữ họ trong ứng dụng thay vì để họ rời khỏi ứng dụng để chuyển sang một trình duyệt bên ngoài.
Lưu ý: Đối với các thiết bị có màn hình lớn như máy tính bảng và thiết bị có thể gập lại, có thêm các lựa chọn để giúp ứng dụng tận dụng không gian bổ sung:
Các ứng dụng có thể mở đường liên kết đến trang web ở chế độ chia đôi màn hình bằng cách dùng khởi chạy trải nghiệm đa cửa sổ liền kề. Nhờ đó, người dùng có thể thực hiện nhiều việc cùng lúc giữa ứng dụng của bạn và một trình duyệt. HOẶC
Custom Tabs có một lựa chọn về bảng điều khiển bên có thể mở trong cùng một tác vụ, nhưng bên cạnh nội dung ứng dụng hiện có của bạn.
Custom Tab được hỗ trợ bởi trình duyệt mặc định của người dùng, đối với những trình duyệt hỗ trợ Custom Tabs.
Mặc dù có thể sử dụng WebView và mang đến trải nghiệm duyệt web trong ứng dụng có khả năng tuỳ chỉnh cao, nhưng bạn nên dùng Custom Tabs để có trải nghiệm duyệt web "nguyên bản" và chuyển đổi liền mạch khi người dùng muốn mở một đường liên kết trên web trong trình duyệt.
Hình 3. Nhấp vào một đường liên kết trong ứng dụng (bên trái) và mở một trình duyệt trong ứng dụng (bên phải).
3. Luồng đăng nhập hoặc xác thực trong ứng dụng của bạn
Phương pháp được Android đề xuất là tạo quy trình đăng nhập hoặc xác thực bằng Trình quản lý thông tin xác thực. Nếu bạn thấy mình vẫn cần sử dụng Embedded Web cho những trải nghiệm này, hãy tham khảo hướng dẫn sau:
Một số ứng dụng sử dụng WebView để cung cấp quy trình đăng nhập cho người dùng, bao gồm cả việc sử dụng tên người dùng và khoá truy cập (hoặc mật khẩu) dành riêng cho ứng dụng của bạn. Điều này cho phép nhà phát triển hợp nhất các quy trình xác thực trên nhiều nền tảng.
Khi liên kết đến một nhà cung cấp danh tính hoặc trải nghiệm đăng nhập của bên thứ ba, chẳng hạn như "Đăng nhập bằng…", Custom Tabs là cách phù hợp. Việc chạy một Custom Tab giúp bảo vệ thông tin đăng nhập của người dùng bằng cách giữ thông tin đó tách biệt với trang web của bên thứ ba.
Hình 4. Trường đăng nhập trong ứng dụng (bên trái) và một dịch vụ đăng nhập của bên thứ ba được mở trong một "Thẻ tuỳ chỉnh" (bên phải).
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2025-09-03 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-09-03 UTC."],[],[],null,["Android lets you build on the power of the web within your apps. So, you can\nbenefit from the flexibility and efficiency of being able to display certain\ntypes of content.\n\nThis lets you seamlessly integrate existing web content into your Android\napp, such as to display a news feed, show interactive tutorials,\ndisplay ads, or even host a mini-game without building everything from scratch.\nThink of it as a window to the internet, from within your app. There are two\nways to embed web content into your app:\n\n- [`WebView`](/reference/android/webkit/WebView): It displays web content you control inline where you want a high degree of flexibility in customizing or updating the UI.\n- [`Custom Tabs`](/develop/ui/views/layout/webapps/overview-of-android-custom-tabs): A full in-app browsing experience powered by the user's default browser ([see browser support](https://developer.chrome.com/docs/android/custom-tabs/browser-support)) for when users click a link and you want to keep them in the app, instead of leaving to an external browser, with much of the browsing experience out-of-the-box.\n\n**Figure 1.** \\`WebView\\` (left) and \\`Custom Tab\\` (right) outlined.\n\nWhy embed web content?\n\nThere are several benefits to embedding web content in your app:\n\n- **Efficiency**: Reuse existing code from your website. Build on existing web technologies and content.\n- **Integration**: Use external content from third-party providers, such as media and ads, within your app.\n- **Flexibility**: Update content dynamically without being constrained to predefined UIs, or without releasing app updates.\n\nWhen to use web content?\n\nThere are three primary uses cases for using the Web in your Android app:\n\n**1. [Embedding web content into your app as primary or supporting content](/develop/ui/views/layout/webapps/embed-web-content-in-app):\nUse `WebView`**\n\n- Display your own web content inline as a primary experience where you want a high degree of flexibility in customizing or updating the UI.\n- Display other content such as ads, legal terms and regulations, or other third-party content inline, or as a window within your app experience.\n\n**Figure 2.** Web content embedded within the app with \\`WebView\\`s as primary (left) and supporting content (right).\n\n**2. [In-app browsing](/develop/ui/views/layout/webapps/in-app-browsing-embedded-web) using `Custom Tabs`, or `WebView` for more advanced\nuse cases**\n\n- Have a full in-app browsing experience for when users click a link and you want to keep them in the app, instead of leaving to an external browser.\n - Note: For large screen devices such as tablets and foldables, there are additional options to help apps take advantage of additional space:\n - Apps can open weblinks in split screen using [launch an adjacent\n multi-window experience](/develop/ui/compose/layouts/adaptive/support-multi-window-mode#launch_adjacent). This enables users to multitask between your app and a browser at the same time. OR\n - `Custom Tabs` have a side panel option that can open in the same task, but next to your existing app content.\n- The `Custom Tab` is powered by the user's default browser, for browsers which support `Custom Tabs`.\n - While it's possible to use a `WebView` and provide a highly customizable in-app browsing experience, we recommend `Custom Tabs` for an out-of-the-box browser experience and seamless transition for when a user wants to open a web link in the browser.\n\n**Figure 3.** Clicking on an in-app link (left) and opening an in-app browser (right).\n\n**3. Login or Authentication flows within your app**\n\nAndroid's suggested approach is to build your login or authentication flows\nusing [Credential Manager](/identity/sign-in/credential-manager). If you find\nyou still need to use Embedded Web for these experiences, use the following\nguidance:\n\n- Some apps use `WebView`s to provide sign-in flows for their users, including using a username and passkey (or password) specific to your app. This enables developers to unify the authentication flows across platforms.\n- When linking out to a third-party identity provider or login experience, such as \"Sign in with...\", `Custom Tabs` are the way to go. Launching a `Custom Tab` helps protect the user's credential by keeping it isolated to the third-party site.\n\nFor more information about using `WebView`s for authentication,\nsee [Authenticate users with WebView](/identity/sign-in/credential-manager-webview).\nFor launching a `Custom Tab`, see [Overview of Android Custom Tabs](/develop/ui/views/layout/webapps/overview-of-android-custom-tabs).\n**Figure\n4.** An in-app login field (left) and a third-party login opened in a \\`Custom Tab\\` (right)."]]