2014-05-22 97 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