Android Historial de navegación dejando fuera sólo algunos sitios
Usando la función de abajo estoy tratando de obtener la ÚLTIMA URL que el usuario visitó desde Chrome Browser en su teléfono Android. Esta función funciona muy bien para la mayoría de los sitios, pero no funciona para "www.reddit.com".
La variable de url
siguiente se actualiza si voy a "www.google.com", "www.hulu.com" o "www.kayak.com" pero no se actualizará si voy a "www.reddit.com".
- ¿Cómo se agrega un marcador de Android para una aplicación web utilizando javascript?
- Almacenamiento y visualización apropiados de mi actividad de marcadores / historial?
- Mejores prácticas al agrupar gran cantidad de marcadores en Google Maps Android V2
- Android Mapview: Fusionar marcadores superpuestos en un nuevo marcador
- Rotar marcador según la dirección del usuario en Google Maps V2 Android
Se actualiza si voy a "m.reddit.com". El mismo problema con facebook, detecta m.facebook.com pero no www.facebook.com .
No entiendo ¿Cuál es la diferencia entre "www.reddit.com" y "m.reddit.com" que Android registra uno, pero no el otro.
¿Qué cambio necesito en el código para detectar TODOS LOS ACCESOS DE URL?
public String returnLastChromeURL(int browserCode) { String[] proj = new String[] { Browser.BookmarkColumns.DATE, Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.URL }; String dateTime; Uri uriCustom = Uri .parse("content://com.android.chrome.browser/bookmarks"); String sel = Browser.BookmarkColumns.BOOKMARK + " = 0"; // 0 = history, // 1 = bookmark try { Cursor mCur = mContext.getContentResolver().query(uriCustom, proj, sel, null, BookmarkColumns.DATE + " ASC"); mCur.moveToFirst(); mCur.moveToLast(); dateTime = mCur.getString(mCur .getColumnIndex(Browser.BookmarkColumns.DATE)); title = mCur.getString(mCur .getColumnIndex(Browser.BookmarkColumns.TITLE)); url = mCur.getString(mCur .getColumnIndex(Browser.BookmarkColumns.URL)); mCur.close(); } catch (Exception e) { dateTime = String.valueOf(System.currentTimeMillis()); title = ""; url = "empty_list"; } return url; }
Algunos más información de mi depuración:
- Cuando intento esto en un emulador de Genymotion, todos los Web site (incluyendo sitios como
www.reddit.com
consiguen detectado bien). En un teléfono realwww.reddit.com
no se detecta. - Sitios que el código detectará OK:
www.kayak.com' (redirects to
www.kayak.com/mn),
www.hulu.com(loads mobile version of site though url stays www.hulu.com),
www.google. Com (la misma historia que el hulu).
Parece que los sitios que cargan la versión de escritorio pura del sitio, no se detectan
- Cómo agregar marcador de Android en la pantalla de inicio desde la página web?
- Cómo ocultar / mostrar grupos de marcadores por categoría con Google Maps en Android?
- Al presionar googleMap Marker en Android, 2 botones aparecen en la esquina inferior derecha, ¿puedo desactivarlos?
- Cómo obtener MarkerId en Artoolkitplus en android
- Actualización de un marcador de mapa en android
Esto se debe a que nunca visita el dominio de escritorio en tu móvil, de hecho, cada vez que visites facebook en tu móvil (o cualquier otro sitio web que detecta tu navegador), automáticamente te redirigirá al sitio web para móviles, las redirecciones no se guardarán en la historia a menos que Carga de página, lo que nunca sucede.
Comprueba la siguiente captura de pantalla de mi verdadera N7100 galaxy note2 y mi navegador de Windows:
Si está utilizando el navegador de cromo puede solicitar sitio web de escritorio (que no es una solución fiable como el usuario tendrá que hacer esto manualmente).
Otra solución es anular el método de redirección que no funcionará debido a la política XSS .
Por lo que una mejor solución es falsificar su navegador y convencer al servidor de que está utilizando un navegador de escritorio comprobar esta respuesta .
El simulador en el escritorio utiliza el agente de usuario del dispositivo que contará como navegador de escritorio.