在将url加载到webView时,我收到消息“服务器挂起”,并且在Android端或服务器端均未实现此消息。如果有人知道如何解决此问题,请提供帮助。谢谢
我使用了以下代码:
private WebView mWebview;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mWebview = new WebView(this);
mWebview.getSettings().setJavaScriptEnabled(true);
webView.setWebChromeClient(new MyWebChromeClient(this));
mWebview .loadUrl("our server url");
setContentView(mWebview);
}
private class MyWebChromeClient extends WebChromeClient {
Context context;
public MyWebChromeClient(Context context) {
super();
this.context = context;
}
}
答案 0 :(得分:1)
Webview向您显示由已加载的URL返回的HTML。
如果您收到包含错误消息的响应,则不会调用onReceivedError()
。
使用onPageFinished()
中的以下代码检查从服务器收到的HTML内容。
webView.evaluateJavascript(
"(function() { return ('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>'); })();",
new ValueCallback<String>() {
@Override
public void onReceiveValue(String html) {
// displays the HTML received after the URL is loaded.
Log.e("#Eval", "Html -> " + html);
}
});
您已经提到该消息未在您的应用程序中实现,因此必须已从服务器端收到该消息。
答案 1 :(得分:0)
Google.com是安全域。您必须使用https://www.google.com而不是http://www.google.com。
答案 2 :(得分:0)
请使用此方法并设置您的网站网址: 范例:startWebView(“ https://stackoverflow.com”);
private void startWebView(String url) {
WebSettings settings = webview.getSettings();
settings.setJavaScriptEnabled(true);
webview.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
webview.getSettings().setBuiltInZoomControls(true);
webview.getSettings().setUseWideViewPort(true);
webview.getSettings().setLoadWithOverviewMode(true);
webview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast.makeText(getApplicationContext(), "Error:" + description, Toast.LENGTH_SHORT).show();
}
});
webview.loadUrl(url);
}