Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Cómo manejar páginas web "infinitas"?

Érase una vez, la vida era simple: todas las páginas web tenían una longitud finita y si no encajaban en el tamaño actual de las ventanas / vistas, simplemente se desplazaría hacia abajo hasta llegar a la parte inferior de la página.

Pero recientemente he notado que hay una nueva tendencia en el mundo del diseño web: páginas web sin fondo .

Probablemente los ejemplos más conocidos de los sitios que utilizan estas páginas son Facebook y Twitter: se desplaza hasta el "fondo", sólo para activar alguna actualización que añade contenido a la página, por lo que el "fondo antiguo" ya no es un fondo y, hay un nuevo "fondo".

En un WebView de Android, necesito poder capturar todo el contenido actualmente disponible en esa "página", pero no estoy seguro de cómo abordar esto:

Simular el desplazamiento del usuario hacia abajo a través de View.scrollBy (int x, int y) , pageDown () o window.scrollTo () ?

¿O hay un método API que hace esto automáticamente para mí?

¿O me estoy acercando a esto completamente mal y no debería intentar llegar al "fondo real" en una captura (si es posible en absoluto)?

EDIT : Parece que el etiquetado de esta pregunta javascript comunicó el mensaje opuesto. Estoy interesado en capturar (procesar) esas páginas sin fondo en la WebView de Android, usando Java .

4 Solutions collect form web for “¿Cómo manejar páginas web "infinitas"?”

Editar: ignorar esta respuesta, he malinterpretado la pregunta. Dejando la respuesta en caso de que otros malinterpreten la pregunta también.


Puede utilizar el complemento jQPageFlow jQuery o basarse en su documentación.

El desplazamiento infinito es otra gran opción.

Independientemente de qué idioma se utiliza, la solución es bastante simple. Usted acaba de captar la capacidad del usuario (mediante la captura de y actual y compararlo a max y od la página), a continuación, Usted tiene que añadir alguna nueva información a usted contenido, por conexión asíncrona. Eso es todo. No sé muy bien Java por lo que sólo puedo dar una pista, pero la idea es la misma en todas las tecnologías / idiomas.

Dada la siguiente página web:

 <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <!-- website code --> <!-- The endless articles you want to process --> <div class="article"> </div> <div class="article"> </div> <div class="article"> </div> <!-- ... --> </body> </html> 

Aquí sería el código a utilizar:

 (function($) { // closure $(function() { // when the document is ready var height = $(this).height(), // get initial height lastEl = null, // track last element processed getData = // this function will process the data as it comes in function() { var $elements = $(".article"); // don't reprocess data if(lastEl) { $elements = $elements .slice($elements.index(lastEl)+1); } lastEl = $elements .each(function() { // do what you want with the element }) // save the last element processed .get(-1) || lastEl; // finally, scroll to the bottom of the page $(window).scrollTop($(document).height()); }; $(document).bind('DOMSubtreeModified', function() { var newHeight = $(this).height(); if(newHeight != height) { height = newHeight; getData(); } }); getData(); }); })(jQuery)); 

Simplemente cambia el selector $ elements a lo que quieres buscar. Entonces, deberías estar bien. Es verbosa, pero también de rendimiento-luz.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.