transparente oreo orden navegaciĆ³n navegacion cambiar botones barra android google-chrome browser-history bookmarks android-cursorloader

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 detecta www.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.