1. 程式人生 > >Webview 載入網頁

Webview 載入網頁

import android.app.Activity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;
import android.widget.TextView;

public class MainActivity extends Activity {

WebView webview;
ProgressBar pb;
TextView tv;

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //獲取控制元件    webview 顯示網頁的控制元件
    webview  = (WebView) findViewById(R.id.webview);
    pb = (ProgressBar) findViewById(R.id.pb);
    tv = (TextView) findViewById(R.id.tv);
    //載入網頁的兩種方法(其中一種)
    //1.直接載入一個網址               webview.loadUrl
    //2.直接載入一個html字串   webview.loadData
    
    //直接輸入網址
     webview.loadUrl("https://123.sogou.com/?81002-1001");
    //載入assets下的html
    //webview.loadUrl("file:///android_asset/phone.html");
    
    //webview的·設定類
    WebSettings webSettings = webview.getSettings();
    //放大縮小
    webSettings.setBuiltInZoomControls(true);
    
    
    //得到網頁內容
    //WebChromeClient  顯示進度條或彈出js物件框,就需要設定WebChromeClient物件
    webview.setWebChromeClient(new WebChromeClient(){
    	@Override
    	
    	public void onProgressChanged(WebView view, int newProgress) {
    		super.onProgressChanged(view, newProgress);
    		//設定載入進度
    		pb.setProgress(newProgress);
    	}
    	
    	@Override
    	public void onReceivedTitle(WebView view, String title) {
    		super.onReceivedTitle(view, title);
    		 //得到html的title,設定給當前textview;
    		tv.setText(title);
    	}
    });
    	
    //得到網頁的狀態
    webview.setWebViewClient(new WebViewClient(){
    	@Override
    	//載入完成
    	public void onPageFinished(WebView view, String url) {
    		// TODO Auto-generated method stub
    		super.onPageFinished(view, url);
    		//隱藏進度條
    		pb.setVisibility(View.INVISIBLE);
    	}
    	
    	//正在載入
    	@Override
    	public void onPageStarted(WebView view, String url, Bitmap favicon) {
    		// TODO Auto-generated method stub
    		super.onPageStarted(view, url, favicon);
    		//顯示進度條
    		pb.setVisibility(View.VISIBLE);
    	}
    	
    	//點選超連結回掉的方法(攔截Url)
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
        	// TODO Auto-generated method stub
        	return super.shouldOverrideUrlLoading(view, url);
        }
    });
   
}

}