2012-11-08 11 views
8

il seguente codice funziona bene in tutti i dispositivi con sistema operativo Android 2.x, ma non in un tablet Nexus 7 con 4.1.2Webview shouldOverrideUrlLoading funziona nelle versioni di Android precedenti ad eccezione 4.1.x Jellybean

Il problema è che lo shouldOverrideUrlLoading mai correre. La corsa onPageFinished ok

Apprezzerò qualsiasi aiuto disponibile.

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

risposta

0

Hai provato a caricare html_str come file html sul normale browser desktop chrome? Se non lo provi, potrebbe portarti da qualche parte.

Nella versione precedente di Android lo script di domini era consentito, ma per ragioni di sicurezza nell'ultima versione di Android, la visualizzazione Web basata su Webkit impedisce lo scripting cross-domain. Questo potrebbe impedire il caricamento della tua pagina [Prendendo una ipotesi selvaggia qui!].

Problemi correlati