[Học Android] Hướng dẫn sử dụng WebView
![[Học Android] Hướng dẫn sử dụng WebView](https://webnulled.net/wp-content/uploads/2022/02/android-huong-dan-su-dung-webview_6202b369318aa.png)
Hướng dẫn sử dụng WebView để hiển thị 1 trang web hoặc HTML trong ứng dụng Android
Table of Contents
1. WebView là gì?
Trong Android, đối tượng WebView dùng để hiện thị một trang web thông qua một URL hoặc hiện thị HTML trong ứng dụng. Trong bài viết này mình sẽ hướng dẫn bạn cách sử dụng WebView cơ bản.
2. Ví dụ với Android WebView
Bước 1: Cấp quyền Internet
Thêm đoạn sau vào file AndroidManifest.xml:
File AndroidManifest.xml đầy đủ:
Bước 2: Thiết kế giao diện
activity_main.xml
Bước 3: Thêm lớp xử lý sự kiện WebView
MyWebViewClient.java
package org.o7planning.androidwebview;
import android.graphics.Bitmap;
import android.util.Log;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.EditText;
public class MyWebViewClient extends WebViewClient {
private EditText addressBar;
public MyWebViewClient(EditText addressBar) {
this.addressBar= addressBar;
}
// Khi bạn click vào link bên trong trình duyệt (Webview)
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.i("MyLog","Click on any interlink on webview that time you got url :-" + url);
addressBar.setText(url);
return super.shouldOverrideUrlLoading(view, url);
}
// Khi trang bắt đầu được tải
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
Log.i("MyLog", "Your current url when webpage loading.." + url);
}
// Khi trang tải xong
@Override
public void onPageFinished(WebView view, String url) {
Log.i("MyLog", "Your current url when webpage loading.. finish" + url);
super.onPageFinished(view, url);
}
@Override
public void onLoadResource(WebView view, String url) {
super.onLoadResource(view, url);
}
}
Bước 4: Xử lý các sự kiện
MainActivity.java
package org.o7planning.androidwebview;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
private EditText addressBar;
private WebView webView;
private Button buttonGo;
private Button buttonStatic;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonGo =(Button)findViewById(R.id.button_go);
buttonStatic =(Button)findViewById(R.id.button_static);
addressBar =(EditText)findViewById(R.id.editText_addressBar);
webView =(WebView)findViewById(R.id.webView);
// Gắn WebView với lớp xử lý sự kiện
webView.setWebViewClient(new MyWebViewClient(addressBar));
buttonGo.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View view) {
goUrl();
}
});
buttonStatic.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View view) {
showStaticContent();
}
});
}
// Hiện thị trang web qua URL
private void goUrl() {
String url = addressBar.getText().toString().trim();
if(url.isEmpty()) {
Toast.makeText(this,"Please enter url",Toast.LENGTH_SHORT).show();
return;
}
webView.getSettings().setLoadsImagesAutomatically(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
webView.loadUrl(url);
}
// Hiển thị đoạn HTML
private void showStaticContent() {
String staticContent="Select web page
"
+ "";
webView.loadData(staticContent, "text/html", "UTF-8");
}
}
Kết quả:
Cảm ơn các bạn đã đọc bài viết.
Chào thân ái và quyết thắng!
Bài viết gốc: https://o7planning.org/vi/10561/huong-dan-android-webview