2016-01-05 13 views
6

Sto cercando di estrarre il codice sorgente di una pagina Web da una WebView in un'app Android. Sono riuscito, utilizzando questo: http://lexandera.com/2009/01/extracting-html-from-a-webview/Come faccio a decifrare una stringa restituita da Javascript su Android?

oltre a questo per farlo funzionare dopo KitKat:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { 
     webView.evaluateJavascript(
       "(function() { return ('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>'); })();", 
       new ValueCallback<String>() { 
        @Override 
        public void onReceiveValue(String html) { 
         outputViewer.setText(html); 
        } 
       }); 
    }else{ 
     webView.loadUrl("javascript:window.HTMLOUT.showHTML" + 
       "('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>');"); 
    } 

Ora, il problema è che la versione non kitkat torna esattamente quello che voglio. La versione KitKat tuttavia restituisce una versione sfuggito del codice, qualcosa di simile:

"\u003Chtml>\u003Chead>\n\t\u003Cmeta charset=\"UTF-8\">\n\t\u003Cmeta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n\t\u003Clink rel=\"profile\" href=\"http://gmpg.org/xfn/11\">\n\t\u003Clink rel=\"pingback\" 

Esiste un modo dritto in avanti per unescape che stringa su Android?

Mike

+1

I _did_ google, e mi sono imbattuto quella risposta, ma nessuna di queste soluzioni ordinati lavorato. Il file JSON.parse sembra non funzionare, restituisce semplicemente null e la soluzione in javascript passa ancora x come escape. Penso che la soluzione debba essere in java dopo che la stringa è stata distribuita, piuttosto che nel Javascript, poiché sembra essere stata scappata durante l'uscita. Ha senso? – user1766513

+0

Bene, la soluzione è programmata in JavaScript, quindi è necessario inserire il tag '

Problemi correlati