2012-11-08 2 views
8

folgender Code funktioniert bei allen Geräten feine Android 2.x laufen, aber nicht in einem Nexus 7 Tablet mit 4.1.2Webview shouldOverrideUrlLoading arbeitet in früheren Android-Versionen außer 4.1.x jellybean

Das Problem ist, dass der shouldOverrideUrlLoading niemals laufen. Der onPageFinished run ok

Ich werde jede verfügbare Hilfe zu schätzen wissen.

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

Antwort

0

Haben Sie versucht, die html_str als HTML-Datei auf normalen Desktop-Chrome-Browser laden? Wenn Sie es nicht versuchen, kann es Sie irgendwo führen.

In früheren Version von Android Cross-Domain-Scripting wurde erlaubt, aber aus Sicherheitsgründen in der neuesten Version von Android, webkit-basierte Webview verhindert Cross-Domain-Scripting. Dies kann dazu führen, dass Ihre Seite nicht geladen wird.

Verwandte Themen