Приватный режим в Сафари под iOS

Честно сказать, не знаю для чего это может быть нужно, но это одна из вещей, которая если понадобится, то потом не найдёшь. Джаваскрипт, который позволяет определить запущен ли мобильный Сафари (под Айос) в приватном режиме:

function isPrivateMode() {
    var s = window.sessionStorage, key = '';

    try {
        s.setItem(key, '');
        s.removeItem(key);
    } catch (e) {
        if (e.code === DOMException.QUOTA_EXCEEDED_ERR && !s.length) {
            return true;
        } else {
            throw e;
        }
    }
    return false;
}

// приватный режим включен?
alert(isPrivateMode());

Оригинальный код основан на следующем факте — в приватном режиме мобильный Сафари запрещает доступ к sessionStorage. Я только обернул скрипт в функцию и переименовал переменные.

2 комментария

Яблокораздирающая история

«Макрадар» цитирует Джонатана Айва:

«Мы чуть не отказались выпуска iPhone, поскольку у нас возникли серьезные проблемы, которые казались неразрешимыми. В ранних прототипах нашего смартфона стоило лишь поднести устройство к уху, как, во время его касания к активному дисплею, набирались произвольные номера. Требовалось учитывать различные формы ушных раковин, прически и даже расовый тип пользователей. И это была лишь одна из многих сложнейших ситуаций, когда нам казалось, что у проекта нет будущего», — утверждает Айв.

Это насколько ранний прототип-то? Примерно 8—10 лет назад я видел какой-то сотовый телефон (кажется, это была какая-то модель «Эрикссона»), у которого подобный датчик был и работал он стабильно. Там он отключал громкую связь, стоило телефон подвести к уху. Может и ещё что-то отключалось, я не помню уже.

10 комментариев