我有一个问题。我的程序假设转到不同的IP地址,里面有不同的名字。然后它将从网站上取出HTML代码。如果它与正确的名称不对应,它将跳到下一个URL。
以下是从用户获取用户名并使用webview访问网页的代码。
name = getIntent().getExtras().getString("username");
URL = getIntent().getExtras().getInt("URL"); //URL passed from previous activity as 99
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>');");
}
/* public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
Toast.makeText(getApplicationContext(), "Your Internet Connection May not be active Or " + error, Toast.LENGTH_LONG).show();
URL = URL +1 ;
Intent intent = new Intent (lightingpair.this, lightingpair.class);
intent.putExtra ("username", name) ;
intent.putExtra ("URL", URL);
startActivity (intent) ;
}*/
});
webview.loadUrl("http://192.168.0." + URL + "/pair");
Toast.makeText(getApplicationContext(), String.valueOf(URL) , Toast.LENGTH_LONG).show();
这是javascript的代码
class MyJavaScriptInterface {
private Context ctx;
MyJavaScriptInterface(Context ctx) {
this.ctx = ctx;
}
String nhtml;
@JavascriptInterface
public void showHTML(String html) {
nhtml = html ;
runOnUiThread(new Runnable() {
@Override
public void run() {
if (nhtml.indexOf(name) > 0) {
Intent intent = new Intent(lightingpair.this, Lighting.class);
intent.putExtra("username", name);
intent.putExtra("url", URL);
startActivity(intent);
} else {
URL = URL + 1;
Intent intent = new Intent(getApplicationContext(),lightingpair.class);
intent.putExtra("username", name);
intent.putExtra("URL", URL);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("EXIT", true);
startActivity(intent);
}
}
但是,在3或4个网页扫描后它会停止,有时会扫描更多。 想知道是否有更有效的方法去不同的IP地址来收集HTML代码。