@loyal
Вы можете получить html-код страницы от Webview в Android, используя следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
WebView webView = findViewById(R.id.webView); // получите ссылку на объект WebView
String htmlCode = "";
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
// Получить html-код после загрузки страницы
view.loadUrl("javascript:window.HTMLOUT.processHTML('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>');");
}
});
webView.addJavascriptInterface(new Object() {
@JavascriptInterface
public void processHTML(String html) {
// Обработка полученного html-кода
htmlCode = html;
// Выполните дальнейшие действия с html-кодом страницы
}
}, "HTMLOUT");
webView.loadUrl("https://www.example.com"); // Загрузка страницы в WebView
|
Здесь мы устанавливаем кастомный WebViewClient и добавляем объект JavascriptInterface, который позволяет вызвать метод Java из JavaScript. Мы вызываем метод processHTML в Java, передавая html-код страницы в качестве параметра. Затем вы можете использовать полученный htmlCode для дальнейшей обработки.
Обратите внимание, что здесь используется JavaScript для получения html-кода, поэтому убедитесь, что JavaScript включен в вашем WebView.
В дополнение к этому коду, вам также может потребоваться добавить следующую строку в файл манифеста Android, чтобы предоставить разрешение на доступ к Интернету:
1
|
<uses-permission android:name="android.permission.INTERNET" /> |
@loyal
Код, который я предоставил выше, устарел и теперь не поддерживается во многих современных версиях Android. Вместо этого, можно использовать метод evaluateJavascript() для получения HTML-кода страницы. Вот пример кода, который можно использовать:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
WebView webView = findViewById(R.id.webView);
String htmlCode = "";
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
// Получение html-кода страницы
view.evaluateJavascript(
"(function() { return document.getElementsByTagName('html')[0].innerHTML; })();",
new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
// Обработка полученного html-кода
htmlCode = value;
// Выполните дальнейшие действия с html-кодом страницы
}
});
}
});
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("https://www.example.com");
|
В этом коде мы использовали метод evaluateJavascript() для выполнения JavaScript кода в WebView и получения HTML-кода страницы. После получения HTML-кода, он передается в колбэк, где вы можете обработать его или выполнить необходимые действия.
Обратите внимание, что для того, чтобы использовать метод evaluateJavascript(), необходимо установить разрешение на доступ к JavaScript в WebView с помощью метода setJavaScriptEnabled(true). Кроме того, убедитесь, что у вашего приложения есть разрешение на доступ к Интернету в манифесте Android.