WebView là gì?
WebView là subclass của View, dùng để hiển thị nội dung HTML hoặc trang web bên trong ứng dụng Android.
Các phương thức phổ biến
| Phương thức | Chức năng |
|---|---|
clearHistory() | Xóa lịch sử điều hướng |
destroy() | Hủy trạng thái nội bộ |
getUrl() | Lấy URL hiện tại |
getTitle() | Lấy tiêu đề trang |
canGoBack() | Kiểm tra có thể quay lại không |
Mở link trong WebView (không ra trình duyệt ngoài)
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false; // Load trong WebView
}
}
Ví dụ hoàn chỉnh
Bước 1: Tạo project Android Studio
Bước 2: Layout activity_main.xml
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Bước 3: MainActivity.java
public class MainActivity extends AppCompatActivity {
private WebView simpleWebView;
private ProgressBar loadProgress;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
simpleWebView = findViewById(R.id.webView);
simpleWebView.setWebViewClient(new WebViewClient());
WebSettings settings = simpleWebView.getSettings();
settings.setLoadsImagesAutomatically(true);
settings.setJavaScriptEnabled(true);
settings.setBuiltInZoomControls(true);
settings.setSupportZoom(true);
settings.setLoadWithOverviewMode(true);
settings.setUseWideViewPort(true);
settings.setAllowContentAccess(true);
simpleWebView.loadUrl("https://www.tutorialspoint.com/");
}
@Override
public void onBackPressed() {
if (simpleWebView.canGoBack()) {
simpleWebView.goBack(); // Quay lại lịch sử WebView
} else {
super.onBackPressed(); // Thoát app
}
}
}
Bước 4: AndroidManifest.xml - Permission Internet
<uses-permission android:name="android.permission.INTERNET" />
Bước 5: Chạy thử
WebView load TutorialsPoint. Nhấn link HTML → hiển thị trong WebView:

Best Practices hiện đại
- Dùng
WebViewClientCompat(AndroidX) để tương thích ngược. - Bật
setMixedContentMode(WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE)cho HTTPS load HTTP resource. - Xử lý SSL error an toàn (không bypass production).
- Cân nhắc
Chrome Custom Tabscho auth/external link - UX tốt hơn.