2014-05-22 59 views
1

我有一些在WebView中打开的网页。Android WebView无法呈现网页

<body onload="window.location.href='htcmd:loaded';"> 

加载之后,我们打开后面的URL“htcmd:loaded”并截取代码。 像这样:

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一切都很好。但如果我杀了应用程序并在第一次运行后打开,则网页无法呈现。但是,如果我点击屏幕或更改方向网页出现。问题在哪里?

SOLUTION:我有两个黑客))) 第一:添加Java脚本的网页:

<body onload="setTimeout(function(){window.location.href='htcmd:loaded';},3000);"> 

二:添加代码,Web客户端:

@Override 
public void onPageFinished(WebView view, String url) { 
    if (android.os.Build.VERSION.SDK_INT >= 19) { 
     view.requestFocus(); 
    } 
} 

回答

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"); 
+0

对于“https://www.google.com”它没有问题。即使我不改变文字。 – teren4m