Я хотел бы обнаружить, когда мой веб-просмотр загружает определенную страницу, например, неправильную страницу входа. Я пробовал использовать onLoadResource
и shouldOverrideUrlLoading
, но я не могу заставить их работать, и я думаю, что лучший способ будет анализировать HTML каждый раз, когда веб-просмотр начнет загружать страницу, и если определенная строка будет найдена в HTML , тогда сделайте что угодно.Анализ HTML-содержимого Webview - Android
Есть ли способ для этого? Я пробовал использовать TagSoup, но я не знаю, как связать его с моим веб-просмотром. Вот что мой код выглядит сейчас:
String fullpost = "pass=" + passwordt + "&user=" + usernamet + "&uuid=" + UUID;
String url = "mydomain.com";
mWebview.postUrl(url, EncodingUtils.getBytes(fullpost, "BASE64"));
mWebview.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView mWebview, String url) {
String webUrl = mWebview.getUrl();
if (webUrl.contains("/loginf")) {
MainActivity.this.mWebview.stopLoading();
MainActivity.this.setContentView(R.layout.preweb);
}
}
});
В основном, postUrl запускается с пользователем нажатием на кнопку в макете, и это то, что начинает WebView, а затем я называю setContentView
в макете, который содержит WebView.
Отправляясь, если информация для входа верна, веб-страница переходит на XXX, и если она неверна, она переходит в YYY. Итак, я хочу немедленно обнаружить (и на каждой загрузке страницы), если загружен YYY, то //domagic
. Надеюсь, это имеет смысл. Будучи перенаправлением страницы с url
в XXX или YYY, автоматический и не инициированный пользователем, shouldOverrideUrlLoading
не работает, и я не могу понять, как использовать onLoadResource
, поэтому я просто полностью потерян.
Моя текущая мысль - загрузить все в отдельном потоке, а затем использовать WebView для отображения содержимого (таким образом, я могу разобрать HTML), но я не уверен, как это работает или даже как это сделать ,
У кого-нибудь есть идеи или предложения?