演示:https://github.com/1178128850/webviewloaddate
:
package com.killua.webview;
import android.graphics.Bitmap; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.webkit.JavascriptInterface; import android.webkit.WebResourceError; import android.webkit.WebResourceRequest; import android.webkit.WebView; import android.webkit.WebViewClient;
public class MainActivity extends AppCompatActivity {
public WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView = new WebView(this);
settings();
mWebView.setWebViewClient(new WebViewClient(){
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
@Override
public void onPageFinished(WebView view, String url) {
Log.i("===", "onPageFinished: ");
// 获取页面内容
view.loadUrl("javascript:window.java_obj.showSource("
+ "document.getElementsByTagName('html')[0].innerHTML);");
// 获取解析
view.loadUrl("javascript:window.java_obj.showDescription("
+ "document.querySelector('meta[name=\"share-description\"]').getAttribute('content')"
+ ");");
super.onPageFinished(view, url);
}
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
super.onReceivedError(view, request, error);
}
});
mWebView.loadUrl("http://list.iqiyi.com/www/2/-------------24-1-1-iqiyi--.html");
}
public final class InJavaScriptLocalObj
{
@JavascriptInterface
public void showSource(String html) {
System.out.println("====>html=" + html);
}
@JavascriptInterface
public void showDescription(String str) {
System.out.println("====>html=" + str);
}
}
private void settings(){
// 开启JavaScript支持
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.addJavascriptInterface(new InJavaScriptLocalObj(), "java_obj");
// 设置WebView是否支持使用屏幕控件或手势进行缩放,默认是true,支持缩放
mWebView.getSettings().setSupportZoom(true);
// 设置WebView是否使用其内置的变焦机制,该机制集合屏幕缩放控件使用,默认是false,不使用内置变焦机制。
mWebView.getSettings().setBuiltInZoomControls(true);
// 设置是否开启DOM存储API权限,默认false,未开启,设置为true,WebView能够使用DOM storage API
mWebView.getSettings().setDomStorageEnabled(true);
// 触摸焦点起作用.如果不设置,则在点击网页文本输入框时,不能弹出软键盘及不响应其他的一些事件。
mWebView.requestFocus();
// 设置此属性,可任意比例缩放,设置webview推荐使用的窗口
mWebView.getSettings().setUseWideViewPort(true);
// 设置webview加载的页面的模式,缩放至屏幕的大小
mWebView.getSettings().setLoadWithOverviewMode(true);
}
}