2016-01-05 71 views
6

我正試圖從Android應用中的WebView中拉出一些網頁源代碼。我已經成功,使用此:http://lexandera.com/2009/01/extracting-html-from-a-webview/如何從Android上的Javascript返回一個字符串?

加上這使它奇巧後工作:現在

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

,問題是,非奇巧版本返回正是我想要的。然而,奇巧版本返回碼的轉義版本,這樣的事情:

"\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\" 

是否有反轉義在Android上該字符串直接的方式?

邁克

+1

我_did_谷歌,以及跨答案出來,但那些都名列解決方案的工作。 JSON.parse似乎不起作用,只是返回null,並且JavaScript中的解決方案仍將x傳遞給escape。 我認爲這個解決方案在字符串被傳遞之後需要在java中,而不是在Javascript中,因爲它似乎正在逃離出路。 這是否有任何意義? – user1766513

+0

那麼,該解決方案是用JavaScript編寫的,因此您需要在該頁面中插入'

相關問題