Webview là một widget dùng để nhúng nội dung trang web vào ứng dụng, có thể load từ URL hoặc từ chuỗi có sẵn.
Các bước thao tác tạo Webview:
1. Trong layout nhúng vào 1 thẻ Webview và đặt ID cho thẻ này là mWebview
<Webview
android:id="@+id/mWebview"
android:layout_height="451dp"
android:layout_width="match_parent"/>
2. Trong activity viết code java như sau:
WebView mWebView = findViewById(R.id.mWebview);
// cho phép javascript hoạt động
mWebView.getSettings().setJavaScriptEnabled(true);
final Activity activity = this;
mWebView.setWebChromeClient(new WebChromeClient(){
@Override
public void onProgressChanged(WebView view, int newProgress) {
Log.d("zzzzzzzzz", "onProgressChanged: " + newProgress); // xem log tiến trình load
super.onProgressChanged(view, newProgress);
}
});
mWebView.setWebViewClient( new WebViewClient(){
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
super.onReceivedError(view, request, error);
// hiển thị lỗi nếu có lỗi xảy ra
Toast.makeText(activity, error.getDescription() , Toast.LENGTH_SHORT).show();
}
});
// load web online
mWebView.loadUrl("https://zezo.dev");
3. Cấp quyền và chạy thử ứng dụng
<uses-permission android:name="android.permission.INTERNET" />
4. Nếu muốn load nội dung từ file HTML có sẵn thì copy file html vào trong thư mục asset
Tạo thư mục ass bằng cách kích phải chuột lên thư mục app –> new –> folder –> asset folder –> để mặc định bấm finish.
Tiếp theo copy file html vào thư mục assets vừa sinh ra
Tiếp theo trong code java ở trên sửa đoạn code loadUrl thành code dưới đây
// load từ file asset
mWebView.loadUrl("file:///android_asset/a.html");
ở code của bạn thì phải thay thế tên file a.html thành file html của bạn, còn chuỗi android_asset thì bạn để nguyên.
Bạn có thể tạo thư mục con trong thư mục asset để chứa ảnh và nhúng vào html.
Chú ý phải khai báo sử dụng quyền trong mainifest nhé