WebView 简单使用方法

使用WebView记得加上网络权限

<uses-permission android:name="android.permission.INTERNET"></uses-permission>



后退键网页后退而不是退出

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    // TODO Auto-generated method stub
    if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {  
        mWebView.goBack();  
        return true;  
    }  
    return super.onKeyDown(keyCode, event);
}


设置获取WebView 内部数据

webView.getSettings().setJavaScriptEnabled(true);            //可以获取js数据
webView.addJavascriptInterface(new Handler(), "handler");    //js数据的监听接口

//监听接口里 显示出网页数据
class Handler {
    public void show(String data) {
    //data  就是网页数据
    Toast.makeText(WebViewActivity.this, "执行了handler.show方法", 0).show();
    new AlertDialog.Builder(WebViewActivity.this).setMessage(data).create().show();
    }
}

这个在页面加载完成后调用 onPageFinished()   handler   js数据监听接口

view.loadUrl("javascript:window.handler.show(document.body.innerHTML);");

在WebView中跳转

mWebView.setWebViewClient(new WebViewClient() {
    public boolean shouldOverrideUrlLoading(WebView view, String url)
    { //  重写此方法表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边
        view.loadUrl(url);
        return true;
     }    
     
     //页面加载完成
    public void onPageFinished(WebView view, String url) {
	Toast.makeText(WebViewActivity.this, "网页加载完成", 0).show();
	view.loadUrl("javascript:window.handler.show(document.body.innerHTML);");
	super.onPageFinished(view, url);
    }        
});

在WebView 加载进度显示 WebChromeClient另一个对象

mWebView.setWebChromeClient(new MyWebChromeClient());  

final class MyWebChromeClient extends WebChromeClient {  
    //进度显示
    @Override
    public void onProgressChanged(WebView view, int newProgress) {
        // TODO Auto-generated method stub
        super.onProgressChanged(view, newProgress);   
        System.out.println(newProgress);              //当前加载进度
    }
        
    @Override
    public void onReceivedTitle(WebView view, String title) {
        super.onReceivedTitle(view, title);
    }
}



你可能感兴趣的:(webView,简单使用方法)