Para ponerlo simple: quiero marcar la posición actual (probablemente varias posiciones) en un archivo html que se muestra en un WebView para recuperarlo más tarde . Cualquier pequeña sugerencia ayudaría. :)¿Cómo obtener la posición del documento en un WebView?
Respuesta
Si por "la posición actual" te refieres a un punto en alguna página determinada, no creo que eso sea posible ... al menos no solo de Java. Toda la API de WebKit expuesta a Java carece de cualquier cosa que se ocupe del contenido de las páginas.
Si usted tiene control sobre el contenido de la página, y no hay una manera de saber estas posiciones a través de páginas en Javascript, usted podría:
Paso # 1: Uso WebView#addJavascriptInterface()
añadir un objeto con algún tipo de recordPosition()
método , guardando la información donde sea apropiado
Paso # 2: Crea una función de Javascript que llame al recordPosition()
en el objeto inyectado.
y luego o bien:
Paso 3a: Disparo que la función Javascript de sí misma Javascript (por ejemplo, sobre la base de un clic), o
Paso 3b: A petición loadUrl("javascript:...");
en su WebView
, donde ...
es reemplazado por código Javascript para activar la función Javascript desde el paso # 2.
Restaurar estas posiciones tendría que funcionar de la misma manera: tener Javascript hacer las restauraciones reales, posiblemente desencadenadas por código Java.
Tenga en cuenta que no tengo idea de si lo que desea (obtener/establecer la posición actual) está disponible desde Javascript, ya que no soy mucho de un codificador en el navegador.
El enfoque que tomé fue la siguiente:
En el método onSaveInstanceState()
, calcular a qué distancia de la página que el usuario había desplazado.
int contentHeight = webView.getContentHeight();
int scrollY = webView.getScrollY();
float scrollPercent = ((float) scrollY/((float) contentHeight));
Stash that in the bundle. Cuando se restaura la página en el método onCreate()
, esperar a que la página termine de cargarse (en WebClient.onPageFinished()
), desplazarse hasta la posición registrada:
int contentHeight = webView.getContentHeight();
int y = (int) ((float) contentHeight * scrollPercent);
webView.scrollTo(0, y);
- El uso de un
float
y calcular una relación funciona en el caso de hacer zapping entre los paisaje y retrato. - Puede trabajar suficientemente bien pero no perfectamente cuando se combina con el aumento de tamaño de las imágenes.
- La escala también se puede tener en cuenta. Tiendo a esconder la balanza en una preferencia en el método
onPause()
, y luegowebView.setInitialScale(scale)
antes de comenzar a cargar la página. - He encontrado que establecer la vista web a invisible cuando
scrollPercent > 0
se ve mejor.
- 1. Cómo obtener la posición del cursor en un eclipse TextEditor
- 2. Cómo obtener la posición del cursor en un Edittext
- 3. ¿Cómo obtengo la posición de desplazamiento de un documento?
- 4. Obtener la posición actual de la ventana superior en relación con el cuerpo del documento
- 5. Cómo obtener la posición del cursor
- 6. Obtener la posición del ratón en desplazamiento
- 7. ¿Cómo obtener la posición de un clic?
- 8. Cómo obtener la posición del mouse sobre un cierto control
- 9. Obtener posición del mouse
- 10. onMouseMove obtener la posición del mouse
- 11. cómo obtener la URL de la webView
- 12. ¿Cómo obtener la posición del cursor en bash?
- 13. encontrar la posición del elemento relativa al documento
- 14. ¿Es posible obtener la posición de div en la ventana del navegador? No dentro del documento. Dentro de la ventana
- 15. ¿Cómo obtener la posición del artículo en una lista?
- 16. ¿Cómo obtener la posición correcta de Element?
- 17. ¿Cómo insertar un elemento en la posición seleccionada en el documento HTML?
- 18. ¿Cómo obtener el valor del título del documento en látex?
- 19. ¿Cómo obtener la posición de un elemento en un StackPanel?
- 20. ¿Cómo obtener la posición absoluta de un vértice en three.js?
- 21. Obtener la posición del cursor en Android en Editar texto?
- 22. ¿Cómo obtener la posición de un elemento en UIWebView?
- 23. Obtener la posición del texto dentro de un elemento
- 24. cómo obtener la posición actual en FragmentPagerAdapter?
- 25. Obtener la posición del clic sobre el enlace del comando
- 26. Cómo obtener la posición del elemento transformado con css rota
- 27. navegador cruz comparar documento posición
- 28. ¿Cómo obtener la posición() de un elemento XElement?
- 29. obtener la posición del cursor de la terminal
- 30. Obtener la posición del ratón en div desplazable
¡Respuesta asombrosa! Muchas gracias. Pregunta relacionada: http://stackoverflow.com/questions/1091048/alternatives-to-window-scrollmaxy – yanchenko