我需要帮助。此代码适用于Android 4.2及更低版本,但在Android 4.3及更高版本上无效。我需要从任何URL获取源代码并将其保存到自定义文件中。
为什么选择WebView?因为我需要保存代码,登录后将其存储在cookie中。
class MyJavaScriptInterface
{
@SuppressWarnings("unused")
public void showHTML(String html)
{
try {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
openFileOutput("home_slider", MODE_PRIVATE)));
bw.write(html);
bw.close();
}
// Connect to the web site
catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
final WebView browser = (WebView)findViewById(R.id.wv_hide);
browser.getSettings().setJavaScriptEnabled(true);
browser.getSettings().setBlockNetworkImage(true);
browser.getSettings().setLoadsImagesAutomatically(false);
browser.addJavascriptInterface(new MyJavaScriptInterface(), "HTMLOUT");
browser.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) { browser.loadUrl("javascript:window.HTMLOUT.showHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
}
});
/* load a web page */
browser.loadUrl("http://myurl.com");
答案 0 :(得分:1)
在showHTML方法声明之前添加@JavascriptInterface注释