以下代码适用于运行android 2.x的所有设备,但不适用于带有4.1.2的Nexus 7平板电脑
问题是shouldOverrideUrlLoading永远不会运行。 onPageFinished运行正常
我很感激任何可用的帮助。
wv = (WebView) root_view.findViewById(R.id.wv);
wv.setBackgroundColor(res.getColor(R.color.def_bgr_color));
wv.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
wv.setWebViewClient(new MyWebViewClient() );
WebSettings web_settings = wv.getSettings();
web_settings.setJavaScriptEnabled(true);
web_settings.setLoadWithOverviewMode(true);
web_settings.setUseWideViewPort(false);
web_settings.setPluginsEnabled(true);
web_settings.setSupportZoom(true);
web_settings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
public class MyWebViewClient extends WebViewClient {
public MyWebViewClient() {
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.i(TAG, "RUN shouldOverrideUrlLoading" );
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
Log.i(TAG, "RUN onPageFinished" );
}
}
String html_str = ... something html ...
wv.loadDataWithBaseURL("file:///android_asset/", html_str, "text/html", "utf-8", null);
答案 0 :(得分:0)
您是否尝试在常规桌面Chrome浏览器上将html_str加载为html文件?如果不尝试,它可能会带你到某个地方。
在早期版本的android跨域脚本允许但是出于安全原因在最新版本的android中,基于webkit的webview阻止了跨域脚本编写。这可能会阻止您的网页加载[在这里疯狂猜测!]。