我有下面的loadWebView方法......
private void loadWebView() {
final WebView myWebView = (WebView) findViewById(R.id.webView);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setGeolocationEnabled(true);
myWebView.setBackgroundColor(0x00000000);
myWebView.setVisibility(View.VISIBLE);
final ProgressDialog pd = ProgressDialog.show(this, "", "Connecting...", true);
myWebView.loadUrl(_Host);
myWebView.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast toast = Toast.makeText(view.getContext(), "Could not connect.", Toast.LENGTH_LONG);
toast.show();
initSettings();
}
@Override
public void onReceivedHttpAuthRequest(WebView view,
HttpAuthHandler handler,
String host,
String realm) {
handler.proceed(_Username, _Password);
}
//@Override
public void onReceivedSslError(WebView view,
SslErrorHandler handler,
SslError error) {
handler.proceed();
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon)
{
pd.show();
}
@Override
public void onPageFinished(WebView view, String url)
{
pd.dismiss();
}
});
}
当首次从手机中的主要活动(galaxy nexus)调用时,进度对话框不会生成动画,但它会在平板电脑上进行。 同样在关系中,当冲浪开始时,它可以动画。
有什么想法吗?其他一切正常!
编辑(解决) 好的,我找到了解决方案。在initSettings方法中,我被称为带有这些属性的WebView ......
WebView myWebView = (WebView) findViewById(R.id.webView);
myWebView.setVisibility(View.INVISIBLE);
myWebView.loadUrl = "about:blank";
我把它移到了已接受的错误上,现在一切正常!
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
view.setVisibility(View.INVISIBLE);
view.loadUrl("about:blank");
Toast toast = Toast.makeText(view.getContext(), "Could not connect.", Toast.LENGTH_LONG);
toast.show();
initSettings();
}
答案 0 :(得分:0)
在配置WebViewClient之后,您应该调用loadUrl,在其他情况下,您可能根本不使用webviewclient:
myWebView.setWebViewClient(new WebViewClient() { ..}
myWebView.loadUrl(_Host);
是的,这种行为是不可预测的!如果您使用错误的订单,它可能会也可能不会。