我想要做的事情应该非常简单,但是我几乎没有Java / Android经验。
我在Eclipse中有一个WebView设置。我希望该网页转到http://example.com/mypage.php。在该页面上将是文本“OK”或“ALERT”。
我需要知道如何查看这些单词的页面。这将是页面上的所有内容。
请帮忙吗?谢谢!
答案 0 :(得分:3)
尽管可以做到,但没有直接的方法来做你想做的事。首先,定义一个类似于:
的接口public interface WebInterfaceDelegate {
public void receivedHtml(String html);
}
然后,定义一个要在WebView中向JavaScript运行时公开的类,类似于:
public static class WebViewJavaScriptInterface {
private WebInterfaceDelegate delegate;
public WebViewJavaScriptInterface(WebInterfaceDelegate delegate) {
this.delegate = delegate;
}
public void htmlLoaded(String html) {
if (delegate != null) {
delegate.receivedHtml(html);
}
}
}
然后,让你的Activity
实现上面定义的界面,例如:
public class AndroidWebViewActivity extends Activity implements WebInterfaceDelegate {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//...
WebView webView = (WebView)findViewById(R.id.webView1);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new WebViewJavaScriptInterface(this), "AndroidAPI");
webView.loadUrl("http://your.url.com");
}
//...
public void receivedHtml(String html) {
//inspect the HTML here
System.out.println("Got html: " + html);
}
}
最后,在页面中添加一些JavaScript,如:
<script>
window.onload = function() {
AndroidAPI.htmlLoaded(document.body.innerHTML);
}
</script>
所以你可以做到这一切,或者你可以使用URL.openStream()
这样的东西直接连接到目标网页,并从套接字读取标记而不是WebView
。要做到这一点很简单:
InputStream response = new URL("http://example.com/mypage.php").openStream();
//read the data from the response into a buffer, then inspect the buffer
您可以在此处找到一些其他信息: