2012-11-08 1 views
8

다음 코드는 4.1.2웹보기 shouldOverrideUrlLoading는

문제와 넥서스 7 태블릿에 안드로이드 2.X를 실행하는 모든 장치에서 잘 작동하지만이 shouldOverrideUrlLoading 것을 젤리 빈입니다 전 4.1.x를 제외하고 이전 안드로이드 버전에서 작동 절대 달리지 마라. onPageFinished를 실행해도 좋습니다.

유용한 도움말을 제공해 주시면 감사하겠습니다.

wv = (WebView) root_view.findViewById(R.id.wv); 
wv.setBackgroundColor(res.getColor(R.color.def_bgr_color)); 
wv.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY); 
wv.setWebViewClient(new MyWebViewClient()); 

WebSettings web_settings = wv.getSettings(); 
web_settings.setJavaScriptEnabled(true); 
web_settings.setLoadWithOverviewMode(true); 
web_settings.setUseWideViewPort(false); 
web_settings.setPluginsEnabled(true); 
web_settings.setSupportZoom(true); 
web_settings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); 

public class MyWebViewClient extends WebViewClient { 
    public MyWebViewClient() { 
    } 

    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     Log.i(TAG, "RUN shouldOverrideUrlLoading"); 
     return true; 

    } 

    @Override 
    public void onPageFinished(WebView view, String url) { 
     super.onPageFinished(view, url); 
     Log.i(TAG, "RUN onPageFinished"); 
    } 
} 


String html_str = ... something html ... 

wv.loadDataWithBaseURL("file:///android_asset/", html_str, "text/html", "utf-8", null); 

답변

0

일반 데스크톱 크롬 브라우저에서 html_str을 html 파일로로드하려고 했습니까? 해보지 않으면 어딘가로 인도 할 수 있습니다.

안드로이드 크로스 도메인 스크립팅의 이전 버전에서 허용되었지만 안드로이드의 최신 버전에서 보안상의 이유로 웹킷 기반 웹 뷰는 크로스 도메인 스크립팅을 방지합니다. 이로 인해 귀하의 페이지가 로딩되는 것을 막을 수 있습니다 [여기에 야생의 추측!].