我试图获得" html-out"加载后的网页。 以下是我现在使用的代码:
public class TestActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.webview);
final WebView webview = (WebView) findViewById(R.id.browser);
webview.getSettings().setJavaScriptEnabled(true);
webview.addJavascriptInterface(new MyJavaScriptInterface(this), "HtmlViewer");
webview.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
webview.loadUrl("javascript:window.HtmlViewer.showHTML" +
"('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>');");
}
});
webview.loadUrl("http://android-in-action.com/index.php?post/" +
"Common-errors-and-bugs-and-how-to-solve-avoid-them");
}
class MyJavaScriptInterface {
private Context ctx;
MyJavaScriptInterface(Context ctx) {
this.ctx = ctx;
}
public void showHTML(String html) {
new AlertDialog.Builder(ctx).setTitle("HTML").setMessage(html)
.setPositiveButton(android.R.string.ok, null).setCancelable(false).create().show();
}
}
有没有办法在不使用WebView的情况下实现相同的目标?如果可能的话,我根本不想使用任何观点。
答案 0 :(得分:0)
有没有办法在不使用WebView的情况下实现相同的目标?
使用HTTP API执行HTTP GET
请求。例如,HttpUrlConnection
已经存在了大约15年左右。或者,如果您更喜欢更现代的东西,请使用the OkHttp library:
private final OkHttpClient client = new OkHttpClient();
String urlString = "http://android-in-action.com/index.php?post/Common-errors-and-bugs-and-how-to-solve-avoid-them";
Request request = new Request.Builder().url(urlString).build();
Response response = client.newCall(request).execute();
if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
String html = response.body().string();
该代码基于an OkHttp published recipe,应在后台线程上调用,或使用其异步API选项。