oreo - cambiar botones android
Historial de navegaciĆ³n de Android dejando solo algunos sitios (1)
Utilizando la siguiente función, estoy intentando 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 url
continuación 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".
Se actualiza si voy a "m.reddit.com". 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" en que Android graba 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;
}
Un poco más de información de mi depuración:
- Cuando intento esto en un Genymotion Emulator, todos los sitios web (incluidos los sitios como
www.reddit.com
se detectan correctamente). En un teléfono real no se detectawww.reddit.com
. - Sitios en los 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
Esto se debe a que nunca visita el dominio de escritorio en su dispositivo móvil, de hecho, cada vez que visite Facebook en su dispositivo móvil (o cualquier otro sitio web que detecte su navegador) lo redireccionará automáticamente al sitio web móvil, las redirecciones no se guardarán en el historial a menos que carga de páginas, lo que nunca sucede.
Verifique la siguiente captura de pantalla de mi verdadero N7100 galaxy note2 y mi navegador de Windows:
Si está utilizando el navegador Chrome, puede solicitar un sitio web de escritorio (que no es una solución confiable, ya que el usuario tendrá que hacerlo manualmente).
otra solución es anular el método de redireccionamiento que no funcionará debido a la política XSS .
por lo tanto, una mejor solución es falsificar su navegador y convencer al servidor de que está utilizando un navegador de escritorio, marque esta answer .
El simulador en el escritorio utiliza el agente de usuario del dispositivo que contará como navegador de escritorio.