android webview用法小結1

來源:互聯網
上載者:User

將webview裡常用的東西拿出來分享下

想要webview載入頁面,只需webView.loadUrl("http://m.baidu.com");當然別忘了添加網路許可權

此時點擊網頁裡的超連結,會彈出多個瀏覽器選擇,但是我們想要在自己的瀏覽器開啟,就需要設定WebViewClient

webView.setWebViewClient(new WebViewClient(){}

返回鍵的處理:我們開啟多個網頁後,點擊返回目的是返回上一個網頁,但是事實上會關閉當前activity,於是要對返回鍵做處理

@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) {webView.goBack();return true;} elsereturn super.onKeyDown(keyCode, event);}

這裡說一下 return true和return false的區別

返回true的時候表示事件已經完整的執行完畢了,不再執行其他的回呼函數,返回false表示並未完全處理完該事件還會繼續調用其他回呼函數

剛才講的是後退,那怎樣前進呢?

在前進按鈕點擊的時候執行

if(webView.canGoForward()){webView.goForward();}else{Toast("已經是最後一頁了,不能再前進了");}

在重新整理按鈕點擊的時候執行

webView.reload();

在頁面載入的時候我們可能需要給使用者個友好的提示,也是在webViewClient()裡做


webView.setWebViewClient(new WebViewClient(){@Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) {if(progDlg == null || !progDlg.isShowing()){progDlg = new ProgressDialog(ctx);progDlg.setMessage("正在載入,請稍候。。。");}progDlg.show();}@Overridepublic void onPageFinished(WebView view, String url) {progDlg.dismiss();}}

在頁面載入時想要知道載入進度,需要用到另一個類WebChromeClient

webView.setWebChromeClient(new WebChromeClient(){@Overridepublic void onProgressChanged(WebView view, int newProgress) {Message msg = new Message();                                msg.what = 200;                                msg.obj = newProgress;                                handler.sendMessage(msg);}}

在handler裡更新進度條

private Handler handler = new Handler(){public void handleMessage(android.os.Message msg) {switch (msg.what) {case 200:int progress = (Integer) msg.obj;progressBar.setProgress(progress);break;default:break;}};};

等載入完後再讓progressbar消失

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.