【安卓筆記】WebView控制元件使用
阿新 • • 發佈:2019-01-28
wv.loadUrl("file:///android_asset/test1.html");
(2)遠端資源:
直接將地址字串傳入即可。
wv.loadUrl("http://blog.csdn.net");
注意,訪問遠端資源必須加上許可權: <uses-permission android:name="android.permission.INTERNET"/>
其實除了loadurl方式,你也可以呼叫LoadData 或者 loadDataWithBaseURL方法。2.webView的配置: (1)WebSettings WebSettings用來設定WebView的屬性和狀態。可以通過如下方式獲取該物件:
WebSettings webSettings = wv.getSettings();
得到該物件後便可設定一些屬性:(2)WebViewClient WebViewClient主要用來輔助WebView處理各種通知、請求等事件。 通過setWebViewClient方法設定,提供的方法也有很多,下面列舉一部分:(1)setAllowFileAccess(boolean allow); //設定啟用或禁止訪問檔案資料 (2)setBuiltInZoomControls(boolean enabled); //設定是否支援縮放 (3)setDefaultFontSize(int size); //設定預設的字型大小 (4)setJavaScriptEnabled(boolean flag); //設定是否支援JavaScript (5)setSupportZoom(boolean support); //設定是否支援變焦
(3)WebChoromeClient WebChromeClient主要用來輔助WebView處理Javascript的對話方塊、網站圖示、網站標題以及網頁載入進度等。通過WebView的setWebChromeClient()方法設定。(1)doUpdateVisitedHistory(WebView view, String url, boolean isReload); //更新歷史記錄 (2)onFormResubmission(WebView view, Message dontResend, Message resend);//重新請求網頁資料 (3)onLoadResource(WebView view, String url); //載入指定網址提供的資源 (4)onPageFinished(WebView view, String url); //網頁載入完畢 (5)onPageStarted(WebView view, String url, Bitmap favicon); //網頁開始載入 (6)onReceivedError(WebView view, int errorCode, String description, String failingUrl); //報告錯誤資訊
(1)onProgressChanged(WebView view, int newProgress)//監聽網頁載入進度
(2)onReceivedTitle(WebView view, String title)//監聽網頁標題
(3)onReceivedIcon(WebView view, Bitmap icon)//監聽網頁圖示
小案例:package com.example.webviewdemo1;
import android.app.Activity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.util.Log;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends Activity
{
protected static final String TAG = null;
private WebView wv = null;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
wv = (WebView) findViewById(R.id.wv);
WebSettings settings = wv.getSettings();
settings.setBuiltInZoomControls(true);//設定是否顯示縮放工具
settings.setSupportZoom(true);//設定是否支援縮放
settings.setJavaScriptEnabled(true);
settings.setDefaultFontSize(15);
//載入本地assets目錄下的html
// wv.loadUrl("file:///android_asset/test1.html");
//載入遠端網頁
wv.loadUrl("http://blog.csdn.net");
wv.setWebViewClient(new WebViewClient()
{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
//讓新開啟的網頁在當前webview顯示
view.loadUrl(url);
return true;
}
});
wv.setWebChromeClient(new WebChromeClient()
{
//獲得網頁的載入進度(0-100)
@Override
public void onProgressChanged(WebView view, int newProgress)
{
if(newProgress <= 100)
{
Log.i(TAG,"progress"+newProgress);
}
}
//獲得網頁的標題
@Override
public void onReceivedTitle(WebView view, String title)
{
Log.i(TAG,"titile="+title);
}
@Override
public void onReceivedIcon(WebView view, Bitmap icon)
{
// TODO Auto-generated method stub
super.onReceivedIcon(view, icon);
}
});
}
}
演示效果:logcat列印的日誌: