android webview获取网页内容,高版本api解决办法

内部类handler

class Handler {

public void show(String data) {
Toast.makeText(WebViewActivity.this, data, 0).show();
}

}


webview 设置

webView = new WebView(this);
setContentView(webView);
webView.loadUrl(“ http://www.baidu.com “);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new Handler(), “handler”);
webView.setWebViewClient(new WebViewClient() {
@Override
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);
}
});

这是网络上普遍的说法,但是实际使用中,只有taget小于4.2.2的时候才有效,

在高版本的android中,需要在show方法前面添加@JavascriptInterface标记

然后代码才能生效

网上的代码全都没给这关键的标记,让大多数人走了弯路

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章