2014-2-18-WebView 调用javascript 获取网页内容

来源:互联网 发布:假设有二维数组a6*8 编辑:程序博客网 时间:2024/05/16 07:26
在使用WebView 时 为了加载url 不跳转至浏览器 而直接使用Webview进行数据回调需要进行


extends WebViewClient 继承 重写其方法:


public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}


onPageStarted -- 进行url执行开始(一次url加载调用一次)(可以在该方法中进行网页获取延迟设置- 实现定时器辅助)


public void onPageStarted(WebView view, String url, Bitmap favicon) {


onPageFinished -- url执行结束(一次url加载调用一次)


public void onPageFinished(WebView view, final String url) {


onReceivedError -- 加载url出现网络错误 等异常时 回调该方法


WebSettings set = mWebView.getSettings(); //获取web的设置属性
set.setSavePassword(false);//设置webview加载时是否需要缓存登录密码等
set.setSaveFormData(false);
set.setJavaScriptEnabled(true);//设置webView是否支持javascript对调
set.setDomStorageEnabled(false);
webView.addJavascriptInterface(new InJavaScriptLocalObj(), "local_obj"); //实现javascript对调监听
mWebView.setWebViewClient(new MyWebViewClient());//实现webview监听回调


//javascript对调监听示例 获取url html内容:
//详情参考javascript语法
//view.loadUrl可直接执行javascript语句
view.loadUrl("javascript:window.local_obj.showSource('<head>'+"
+"document.getElementsByTagName('html')[0].innerHTML+'</head>');");


final class InJavaScriptLocalObj {
public void showSource(final String html) {
LogHelper.logError(TAG, html);
}
}
0 0
原创粉丝点击