您好,登錄后才能下訂單哦!
之前對于webview的認識很膚淺,這次正好研究一下:
在webview當中加載網址的時候,使用load.url(""),但是要記得在AndroidManifest.xml中對其進行配置。配置語句為:<uses-permission android:name="android.permission.INTERNET" />
重載shouldOverrideUrlLoading(WebView view, String url),當時鏈接的時候,在本軟件進行加載而不是跳到瀏覽器那里。
返回鍵的處理:我們打開多個網頁后,點擊返回目的是返回上一個網頁,但是事實上會關閉當前activity,于是要對返回鍵做處理.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) {
webView.goBack();
return true;
} else
return super.onKeyDown(keyCode, event);
}
網頁前進按鈕。
if(webView.canGoForward()){
webView.goForward();
}else{
Toast("已經是最后一頁了,不能再前進了");
}
點擊刷新按鈕的時候,執行webview.reload();
如果想在頁面加載的時候添加提示信息,可以復寫webclient的
onPageStarted(WebView view, String url, Bitmap favicon){
}
onPageFinished(WebView view, String url){}
例子:
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
if(progDlg == null || !progDlg.isShowing()){
progDlg = new ProgressDialog(ctx);
progDlg.setMessage("正在加載,請稍候。。。");
}
progDlg.show();
}
@Override
public void onPageFinished(WebView view, String url) {
progDlg.dismiss();
}
7.如果想知道加載進度,需要調用另一個類WebChromeClient。
例子:
webView.setWebChromeClient(new WebChromeClient(){
@Override
public 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;
}
};
};
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。