@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.