Подтвердить что ты не робот

История просмотра Android, оставляющая только некоторые сайты

Используя приведенную ниже функцию, я пытаюсь получить LAST-url, который пользователь посетил из браузера Chrome на своем Android-телефоне. Эта функция работает очень хорошо для большинства сайтов, но не работает для "www.reddit.com" .

Переменная url ниже обновляется, если я перехожу на "www.google.com", "www.hulu.com" или "www.kayak.com", но будет не обновлять, если я перейдите на страницу "www.reddit.com" .

Обновление , если я перейду на страницу "m.reddit.com". Такая же проблема с facebook, обнаруживает m.facebook.com, но не www.facebook.com.

Я не понимаю. Какая разница между "www.reddit.com" и "m.reddit.com", что Android записывает один, но не другой.

Какое изменение мне нужно в коде для обнаружения ВСЕХ 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;
}

Дополнительная информация из моего отладки:

  • Когда я пробую это в эмуляторе Genymotion, все веб-сайты (включая сайты типа www.reddit.com будут обнаружены в порядке). На реальном телефоне www.reddit.com не обнаруживается.
  • Сайты, код обнаружит ОК: 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` (та же история, что и hulu).

Похоже, что сайты, загружающие чистую версию рабочего стола сайта, не обнаруживаются

4b9b3361

Ответ 1

Это связано с тем, что вы никогда не посещаете рабочий стол на своем мобильном телефоне, фактически каждый раз, когда вы посещаете facebook на своем мобильном устройстве (или на любом другом веб-сайте, который обнаруживает ваш навигатор), он автоматически перенаправляет вас на мобильный сайт, перенаправления не будут сохранены в истории, если страница не загружается, что никогда не происходит.

Проверьте следующий снимок экрана, взятый из моей истинной галактики N7100 note2 и моего браузера Windows:

Если вы используете Chrome-браузер, вы можете запросить веб-сайт на рабочем столе (который не является надежным решением, так как пользователю придется делать это вручную).

другое решение - переопределить метод перенаправления, который не будет работать из-за XSS.

поэтому лучшим решением является подделка вашего браузера и убеждение сервера, что вы используете настольный браузер, проверить этот ответ.

Симулятор на рабочем столе использует пользовательский агент устройства, который будет считаться браузером рабочего стола. screenshot