2014-05-22 4 views
1

WebView에서 열려있는 일부 웹 페이지가 있습니다.Android WebView에서 웹 페이지가 렌더링되지 않습니다.

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

로드 후 "htcmd : loaded"url을 열고 코드에서 가로 채기. 이처럼 :

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

처음 시작에서 안드로이드 4.4.2에 모두 잘있다. 하지만 앱을 죽이고 첫 실행 후 열면 웹 페이지가 렌더링되지 않습니다. 그러나 화면을 탭하거나 방향을 변경하면 웹 페이지가 나타납니다. 문제가 어디에 있습니까?

해결책 : 나는이 해킹을))) 첫째 : 웹 페이지에 자바 스크립트를 추가 :

<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(); 
    } 
} 

답변

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

관련 문제