Android WebView - прокрутка определенного div и прослушать изменения данных HTML - PullRequest
0 голосов
/ 26 сентября 2019

Я собираю https://m.facebook.com и получаю подробности историй в моем приложении для Android, так как Facebook не предоставляет SDK для получения историй.Я выполнил основную часть, которую теперь получают истории, когда webview onPageFinished вызвал «Я анализирую HTML». Теперь настоящая проблема в том, что он загружает только первые 8 историй, другие истории загружаются с помощью javascript (я полагаю), когда вы прокручиваете по горизонтали.Можно ли как-то прокрутить этот конкретный div и прослушать данные историй, обновленные в веб-просмотре или любым другим способом?

Вот скриншот того, что я имею в виду.http://prntscr.com/pb4g75

Я анализирую html с помощью библиотеки Jsoup.

Я выполнил основную часть анализа html и загрузки историй.Вот код веб-просмотра, где я получаю HTML, когда страница загружается.

webview.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                view.loadUrl("javascript:window.HtmlViewer.showHTML" +
                        "('<html>'+document.getElementById('story_tray').innerHTML+'</html>');");

            }

            @RequiresApi(api = Build.VERSION_CODES.M)
            @Override
            public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
                super.onReceivedError(view, request, error);
                //Log.e("NOMI", String.valueOf(error.getErrorCode()) + " DESC :" + error.getDescription());
                Toast.makeText(getApplicationContext(), "Oh no! ", Toast.LENGTH_SHORT).show();

            }
        });

ОБНОВЛЕНИЕ:

Обновление:

Мне удалосьчтобы прокрутить div историй, который теперь загружает следующие истории, мне просто нужно прослушать событие, когда будут загружены следующие истории.

Вот код

 webview.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                view.loadUrl("javascript:window.HtmlViewer.showHTML" +
                        "('<html>'+document.getElementById('story_tray').innerHTML+'</html>');");


                view.loadUrl("javascript:var elmnt = document.getElementsByClassName(\"_2am8\")[0];\n" +
                        "  elmnt.scroll(1000, 0);");

            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...