Android webview使用方法總結(jié)
Android webview使用方法總結(jié)
這里對Android webview的幾種用法進(jìn)行了總結(jié),提供了九種用法,都要簡單實(shí)例,大家可以參考下:
1. 打開網(wǎng)頁時不調(diào)用系統(tǒng)瀏覽器, 而是在本W(wǎng)ebView中顯示:
mWebView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } });
2. 通過java代碼調(diào)用javascript
WebSettings webSettings = mWebView .getSettings(); webSettings.setJavaScriptEnabled(true); mWebView.addJavascriptInterface(new Object() { public void clickOnAndroid() { mHandler.post(new Runnable() { public void run() { webview.loadUrl("javascript:wave()"); } }); } }, "demo");
3. 按返回鍵時, 不退出程序而是返回上一瀏覽頁面:
public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) { mWebView.goBack(); return true; } return super.onKeyDown(keyCode, event); }
4. 打開頁面時, 自適應(yīng)屏幕:
WebSettings webSettings = mWebView .getSettings(); webSettings.setUseWideViewPort(true);//設(shè)置此屬性,可任意比例縮放 webSettings.setLoadWithOverviewMode(true);
5. 便頁面支持縮放:
WebSettings webSettings = mWebView .getSettings(); webSettings.setJavaScriptEnabled(true); webSettings.setBuiltInZoomControls(true); webSettings.setSupportZoom(true);
6.如果webView中需要用戶手動輸入用戶名、密碼或其他,則webview必須設(shè)置支持獲取手勢焦點(diǎn)。
webview.requestFocusFromTouch();
7.WebView 加載界面主要調(diào)用三個方法:LoadUrl、LoadData、LoadDataWithBaseURL.
1、LoadUrl 直接加載網(wǎng)頁、圖片并顯示.(本地或是網(wǎng)絡(luò)上的網(wǎng)頁、圖片、gif) 2、LoadData 顯示文字與圖片內(nèi)容 (模擬器1.5、1.6) 3、LoadDataWithBase 顯示文字與圖片內(nèi)容(支持多個模擬器版本)
8.WebSettings 的常用方法介紹
setJavaScriptEnabled(true); //支持js setPluginsEnabled(true); //支持插件 setUseWideViewPort(false); //將圖片調(diào)整到適合webview的大小 setSupportZoom(true); //支持縮放 setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); //支持內(nèi)容重新布局 supportMultipleWindows(); //多窗口 setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); //關(guān)閉webview中緩存 setAllowFileAccess(true); //設(shè)置可以訪問文件 setNeedInitialFocus(true); //當(dāng)webview調(diào)用requestFocus時為webview設(shè)置節(jié)點(diǎn) webview webSettings.setBuiltInZoomControls(true); //設(shè)置支持縮放 setJavaScriptCanOpenWindowsAutomatically(true); //支持通過JS打開新窗口 setLoadWithOverviewMode(true); // 縮放至屏幕的大小 setLoadsImagesAutomatically(true); //支持自動加載圖片
9.WebViewClient 的方法全解
doUpdateVisitedHistory(WebView view, String url, boolean isReload) //(更新歷史記錄) onFormResubmission(WebView view, Message dontResend, Message resend) //(應(yīng)用程序重新請求網(wǎng)頁數(shù)據(jù)) onLoadResource(WebView view, String url) // 在加載頁面資源時會調(diào)用,每一個資源(比如圖片)的加載都會調(diào)用一次。 onPageStarted(WebView view, String url, Bitmap favicon) //這個事件就是開始載入頁面調(diào)用的,通常我們可以在這設(shè)定一個loading的頁面,告訴用戶程序在等待網(wǎng)絡(luò)響應(yīng)。 onPageFinished(WebView view, String url) //在頁面加載結(jié)束時調(diào)用。同樣道理,我們知道一個頁面載入完成,于是我們可以關(guān)閉loading 條,切換程序動作。 onReceivedError(WebView view, int errorCode, String description, String failingUrl)// (報(bào)告錯誤信息) onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host,String realm)//(獲取返回信息授權(quán)請求) onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) //重寫此方法可以讓webview處理https請求。 onScaleChanged(WebView view, float oldScale, float newScale) // (WebView發(fā)生改變時調(diào)用) onUnhandledKeyEvent(WebView view, KeyEvent event) //(Key事件未被加載時調(diào)用) shouldOverrideKeyEvent(WebView view, KeyEvent event)//重寫此方法才能夠處理在瀏覽器中的按鍵事件。 shouldOverrideUrlLoading(WebView view, String url) //在點(diǎn)擊請求的是鏈接是才會調(diào)用,重寫此方法返回true表明點(diǎn)擊網(wǎng)頁里面的鏈接還是在當(dāng)前的webview里跳轉(zhuǎn),不跳到瀏覽器那邊。這個函數(shù)我們可以做很多操作,比如我們讀取到某些特殊的URL,于是就可以不打開地址,取消這個操作,進(jìn)行預(yù)先定義的其他操作,這對一個程序是非常必要的。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
Flutter學(xué)習(xí)之實(shí)現(xiàn)自定義themes詳解
一般情況下我們在flutter中搭建的app基本上都是用的是MaterialApp這種設(shè)計(jì)模式,MaterialApp中為我們接下來使用的按鈕,菜單等提供了統(tǒng)一的樣式,那么這種樣式能不能進(jìn)行修改或者自定義呢?答案是肯定的,一起來看看吧2023-03-03Android獲取設(shè)備CPU核數(shù)、時鐘頻率以及內(nèi)存大小的方法
這篇文章主要介紹了Android獲取設(shè)備CPU核數(shù)、時鐘頻率以及內(nèi)存大小的方法,涉及Android針對系統(tǒng)硬件相關(guān)操作技巧,需要的朋友可以參考下2016-07-07解決eclipse啟動時報(bào)錯Failed to create the Java Virtural Machine.問題的
這篇文章主要介紹了解決eclipse啟動時報(bào)Failed to create the Java Virtural Machine.問題的方法,感興趣的小伙伴們可以參考一下2016-01-01Android 中不用線程如何實(shí)現(xiàn)倒計(jì)時
本文給大家分享android中不用線程如何實(shí)現(xiàn)倒計(jì)時功能,非常不錯,具有參考借鑒價值,需要的朋友參考下2017-01-01安卓逆向騰訊動漫app返回?cái)?shù)據(jù)加密分析案例分享
這篇文章主要為大家介紹了安卓逆向騰訊動漫app返回?cái)?shù)據(jù)加密分析的案例分享,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-02-02