我有一些在WebView中打开的网页。
<body onload="window.location.href='htcmd:loaded';">
加载后我们打开网址&#34; htcmd:loaded&#34;并拦截代码。 像这样:
getWebView().getSettings().setJavaScriptEnabled(true);
getWebView().setWebViewClient(new WebViewClient() {
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed();
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if ("htcmd:loaded".equals(url)) {
Toast.makeText(getActivity(), "htcmd:loaded", Toast.LENGTH_SHORT).show();
}
return true;
}
});
getWebView().loadUrl("https://some.url");
在Android 4.4.2首次启动时一切都很好。但是如果我在首次运行后杀了应用程序并打开,则网页无法呈现。但如果我点击屏幕或更改方向网页出现。哪里有问题?
解决方案:我有两个黑客))) 第一步:在网页上添加一个java脚本:
<body onload="setTimeout(function(){window.location.href='htcmd:loaded';},3000);">
第二:向网络客户端添加代码:
@Override
public void onPageFinished(WebView view, String url) {
if (android.os.Build.VERSION.SDK_INT >= 19) {
view.requestFocus();
}
}
答案 0 :(得分:2)
试试这个
w.getSettings().setLoadWithOverviewMode(true);
w.getSettings().setUseWideViewPort(true);
getWebView().getSettings().setJavaScriptEnabled(true);
getWebView().setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return (false);
});
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show();
}
getWebView().loadUrl("https://www.google.com");