[Học Android] Hướng dẫn sử dụng WebView

[Học Android] Hướng dẫn sử dụng WebView

Hướng dẫn sử dụng WebView để hiển thị 1 trang web hoặc HTML trong ứng dụng Android

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

admin

Leave a Reply

Your email address will not be published. Required fields are marked *