Java Android:解析webview的内容而不重新加载和发布
我有一个问题,我的实际android工作集,我不知道如何处理它。我希望在这里能得到帮助;) 我想从一个网站上获取内容(这是我的)。我必须解析一个html标记,该标记与以下源代码完美配合:Java Android:解析webview的内容而不重新加载和发布,java,android,post,webview,webviewclient,Java,Android,Post,Webview,Webviewclient,我有一个问题,我的实际android工作集,我不知道如何处理它。我希望在这里能得到帮助;) 我想从一个网站上获取内容(这是我的)。我必须解析一个html标记,该标记与以下源代码完美配合: WebView webview = new WebView(getApplicationContext()); webview.getSettings().setJavaScriptEnabled(true); webview.addJavascriptInterface(new JIFace(), "HTML
WebView webview = new WebView(getApplicationContext());
webview.getSettings().setJavaScriptEnabled(true);
webview.addJavascriptInterface(new JIFace(), "HTMLOUT");
webview.setWebViewClient(new BasicWebViewClient());
webview.loadUrl("http://webaldo.at/blabla.php");
我的Webviewclient如下所示:
private class BasicWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
progressRingDialog.dismiss();
doErrorDialog("Webservice Offline", "Der Webserver kann nicht erreicht werden. Bitte versuche es später nochmal.");
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
if( progressRingDialog != null ) {
progressRingDialog.dismiss();
}
if( alertDialog != null ) {
alertDialog.dismiss();
}
progressRingDialog = ProgressDialog.show(Login.this, getString(R.string.progress_title), "Passwort wird überprüft", true);
TextView textView = (TextView)findViewById(R.id.statuslabel);
textView.setText("Benutzername wird geprüft");
webview.setWebViewClient(new ExtendedWebViewClient());
webview.loadUrl("javascript:window.HTMLOUT.showHTML(document.getElementsByTagName('x')[0].innerHTML);");
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
}
是的,我的标签,我要解析的是
<x></x>
因为我必须使用此方法向页面发送POST参数:
webview.postUrl("http://webaldo.at/blabla.php", EncodingUtils.getBytes("username="+username+"&password="+password, "BASE64"));
在这种情况下,我的JSF接口中没有数据
你们中有没有人有类似的问题,或者知道一种更好或更简单的方法来处理我的用户名/密码自动验证问题
我期待着好的答案
问候
顺便说一句:URL不是以这种方式存在的,但这不重要。我的Web服务器不支持REST服务,因此我必须以这种方式进行修复。您可以使用连接到站点并解析数据,然后使用webview的方法发送数据
下面是一个如何使用Jsoup连接到特定页面的示例:
Document doc = Jsoup.connect("http://en.wikipedia.org/").get();
Elements newsHeadlines = doc.select("#mp-itn b a");
希望这能有所帮助。以及如何将其与网络视图相结合。你有一个匹配这些的例子吗?为什么你需要合并它?也许我有点困惑。我的想法是使用Jsoup解析网站上的用户名和密码,然后使用webview.postrl()。只有通过POST发送用户名和密码,我才能从网站上获取数据。用户名和密码存储在我的应用程序中
Document doc = Jsoup.connect("http://en.wikipedia.org/").get();
Elements newsHeadlines = doc.select("#mp-itn b a");