Я собираю 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);");
}