一般使用wevview的時候無非就是顯示加載網頁,下面的一些方法參數比較常用:
webView.setInitialScale(100);//webview默認縮放比例爲100,要修改則需設置setInitialScale()參數即可
webView.getSettings().setBuiltInZoomControls(true);//啓用縮放功能
webView.invokeZoomPicker();//顯示縮放的小工具
webView.getSettings().setJavaScriptEnabled(true);//啓用JavaScript功能,功能有限,需要WebViewClient和WebChromeClient來配合
//創建WebViewClient對象指定給webview,使得webview可以開啓用戶單機的超鏈接
webView.setWebViewClient(new WebViewClient());
//給webview增加進度條
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
pb.setProgress(newProgress);
pb.setVisibility(newProgress < 100 ? View.VISIBLE : View.GONE);
}
});
//webView.loadUrl("https://www.jd.com");
@Override
public void onBackPressed() {
//當按下回退鍵時,如果有上一頁就回退,沒有就退出程序
if (webView.canGoBack()) {
webView.goBack();
return;
}
super.onBackPressed();
}
public void search(View v) {
keyWord = et_keyText.getText().toString().replaceAll("\\s+", "+");
//將字符串中單一字符或連續空白換成“+”
webView.loadUrl(baseURL + keyWord);
}
@Override
protected void onPause() {
super.onPause();
//獲取編輯器對象
SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();
editor.putString("關鍵字", keyWord);//存儲當前的搜索參數
editor.commit();//一定要存盤
}
@Override
protected void onResume() {
super.onResume();
//獲取首選項對象
SharedPreferences myPref = getPreferences(MODE_PRIVATE);
keyWord = myPref.getString("關鍵字", "heheda");//讀取存儲的字符串,沒有則返回heheda
if (webView.getUrl() == null) {
webView.loadUrl(baseURL + keyWord);
}
}
筆記知識點:
1、webview默認不支持縮放功能、JavaScript。
2、要讓webview支持多具備瀏覽器功能或自定義行爲,要搭配android.webkit下的WebSettings、WebViewClient、WebChromeClient類。
3、WebSettings用於控制WebView基本設置(啓動網頁縮放、javascript等)。調用WebView的getSettings()方法即可獲取其WebSettings對象
4、WebViewClient控制WebView本身的行爲,可獲取用戶單機網頁中超鏈接、網頁加載的開始結束的等事件的控制權。
5、WebChromeClient的onProgressChanged()會在網頁加載進度有異動的時被調用(0~100)。
6、一般程序都是在Activity的onPause()方法中進行存儲數據的操作,在onResume()方法中讀取先前存儲的數據,以恢復Activity的相關狀態。
知識點來源於網絡,轉載註明出處:http://blog.csdn.net/u011771800/article/details/54095054