Android WebView 參數設置明細!

WebView wv = new WebView(content);

WebSettings ws = wv.getSettings();

設置參數明細如下:

setPluginsEnabled(true) ;//支持插件

setUserWideViewPort(false) ;//將圖片調整到適合webview的大小
setSupportZoom(true) ;//支持縮放
setLayoutAlgorithm(LayoutAlgrithm.SINGLE_COLUMN) ;//支持內容從新佈局
supportMultipleWindows() ;//多窗口
setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK) ;//關閉webview中緩存
setAllowFileAccess(true) ;//設置可以訪問文件
setNeedInitialFocus(true) ;//當webview調用requestFocus時爲webview設置節點
setjavaScriptCanOpenWindowsAutomatically(true) ;//支持通過JS打開新窗口
setLoadsImagesAutomatically(true) ;//支持自動加載圖片
setBuiltInZoomControls(true);
//支持縮放
webView.setInitialScale(35);
//設置縮放比例
webView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
//設置滾動條隱藏 
webView.getSettings().setGeolocationEnabled(true);
//啓用地理定位
webView.getSettings().setRenderPriority(RenderPriority.HIGH);
//設置渲染優先級
String dir = "/sdcard/temp";//設置定位的數據庫路徑 
webView.getSettings().setGeolocationDatabasePath(dir);
這裏是使用webview以及webview的相關設置,課根據實際情況進行設置.
WebViewClient的方法全解
doUpdateVisitedHistory(WebView view, String url ,boolean isReload)
更新歷史記錄
onFormResubmission(WebView view, Message dontResend, Message resend)
應用程序重新請求頁面數據
onLoadResource(WebView view, String url)
在加載頁面資源時會調用,每一個資源(比如圖片)的加載都會調用一次
onPageStarted(WebView view, String url, Bitmap favicon)
這個事件就是開始載入頁面調用的,通常我們可以在這個設定一個loading的頁面,告訴用戶程序在等待網絡相應。
onPageFinished(WebView view, String url)
在頁面加載結束時調用,同樣道理,我們知道一個頁面載入完成,於是我們可以關閉loading條,切換程序動作。
onReceivedError(WebView view, int errorCode, String description, String failingUrl)
報告錯誤信息onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host,Stirng realm)
獲取返回信息授權請求onScaleChanged(WebView view, float oldScale, float newScale)WebView 發生改變時調用onUnhandledKeyEvent(WebView view, KeyEvent event)key事件未被加載時調用
shouldOverrideUrlLoading
並不是每次都在onPageStarted之前開始調用的,就是說一個新的URL不是每次都經過
shouldOverrideUrlLoading的,只有在調用webview.loadURL的時候纔會調用。
//設置在同一個webview中打開新的網頁
webView.setWebViewClient(new WebViewClient(){ public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } });
//設置WebChromeClientwebView.setWebChromeClient(new WebChromeClient(){//配置權限
public void onGeolocationPermissionsShowPrompt(String origin,GeolocationPermissions.Callback callback){callback.invoke(origin, true, false);
super.onGeolocationPermissionsShowPrompt(origin, callback);}
//處理javascript中的alertpublic boolean onJsAlert(WebView view, String url, String message, final JsResult result) {//構建一個Builder來顯示網頁中的對話框
Builder builder = new Builder(MainAcitivity.this);
builder.setTitle("提示");
builder.setMessage(message);
builder.setPositiveButton(android.R.string.ok,new AlertDialog.OnClickListener() {public void onClick(DialogInterface dialog, int which) {result.confirm();}});
builder.setCancelable(false);
builder.create();
builder.show();
return true;
@Override//設置網頁加載的進度條
public void onProgressChanged(WebView view, int newProgress) {MainAcitivity.this.getWindow().setFeatureInt(Window.FEATURE_PROGRESS, newProgress * 100);
super.onProgressChanged(view, newProgress);}
//設置應用程序的標題
titlepublic void onReceivedTitle(WebView view, String title) {MainAcitivity.this.setTitle(title);
super.onReceivedTitle(view, title);}});
//判斷是否聯網
ConnectivityManager cm;
cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
boolean isWifiConnected=cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED;
if(!isWifiConnected){boolean isGprsConnected=cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED;
if(!isGprsConnected){new AlertDialog.Builder(this) .setTitle("提示" ) .setMessage("離線狀態,啓用離線模式" ) .setPositiveButton("確定" , null ) .show(); }else{result = CallWCF();}}
0
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章