2017-08-16 20 views
12

W nowym Safari i iOS 11 High Sierra Safari, ta sztuczka sprawdzenia, czy window.localStorage.setItem('test', 1); (patrz https://stackoverflow.com/a/17741714/1330341) zgłasza błąd, nie działa, ponieważ nie powoduje już błędu, a także poprawnie ustawia pozycję localStorage. Czy ktokolwiek wymyślił jakikolwiek inny sposób sprawdzenia trybu przeglądania prywatnego w nowych wersjach Safari?Jak wykrywać prywatne przeglądanie w iOS 11 Mobile Safari lub MacOS High Sierra Safari?

Odpowiedz

1

nie faktycznie próbowałem, ale z lektury dokumentu Apple:

https://support.apple.com/kb/ph21413?locale=en_US

Wymienia różne cechy przeglądania w trybie prywatnym (~ ciach):

Podczas korzystania z Przeglądanie prywatne window:

  • Każda zakładka w oknie jest izolowana od inne, więc strony internetowe, które widzisz na jednej karcie, nie mogą śledzić twojego przeglądania w innych zakładkach.

  • Safari nie zapamiętuje odwiedzanych stron internetowych ani informacji o autouzupełnianiu .

  • Safari nie przechowuje otwartych stron w usłudze iCloud, więc nie są wyświetlane wyświetlane podczas przeglądania wszystkich otwartych kart z innych urządzeń.

  • Ostatnie wyszukiwania nie są uwzględniane na liście wyników, gdy korzystasz z pola wyszukiwania inteligentnego w polu .

  • Elementy, które pobieracie, nie są uwzględnione na liście plików do pobrania. (Pozycje pozostają na komputerze.)

  • Jeśli używasz Handoff, okna Przeglądanie prywatne nie są przekazywane do urządzeń iOS lub innych komputerów Mac.

  • Safari nie pamięta zmian w plikach cookie ani na innej stronie internetowej danych. Safari prosi również witryny internetowe i inne osoby, które udostępniają te witryny z zawartością (w tym reklamodawcami), aby nie śledziły Twojego przeglądania, ale to zależy od stron internetowych, aby spełnić to żądanie.

  • Wtyczki obsługujące prywatne przeglądanie przestają przechowywać pliki cookie i inne informacje o śledzeniu w postaci .

Z powyższego, w szczególności znalazłem interesujące, że Safari w szczególności prosi strony internetowe o "nieślubne" przeglądanie. Może to potencjalnie być mechanizmem do wyszukania, aby określić, czy korzystasz z prywatnego przeglądania.

Zobacz tę odpowiedź dla przykładu:

Implementing Do not track in asp.net mvc

Ponownie, nie testowałem i nie wiem, czy to będzie działać, ale jeśli nie lista zawiera inne potencjalne możliwości. HTH.

1

Cytat ze strony internetowej jabłka.https://support.apple.com/kb/ph21413?locale=en_US

Strony nie mogą modyfikować informacje przechowywane w urządzeniu, więc usług normalnie dostępne w takich miejscach może działać w różny sposób, dopóki nie obróci off Przeglądanie prywatne

Więc przechowywać zmienną testową, zmiana jego wartość, a następnie odczytaj zmienną testową. Jeśli otrzymasz wyjątek, nie możesz znaleźć zmiennej, wartość się nie zmieniła lub odzyskasz wartość null/undefined, najprawdopodobniej są one w trybie prywatnym.

Alternatywnie, podczas przeglądania prywatnego nie masz dostępnej historii zapisanych wyszukiwań. Tak, przekieruj do nowej strony w swojej witrynie przy starcie, a następnie sprawdź, czy masz jakąkolwiek wcześniejszą historię. Jeśli nie, a fakt, że dostaniesz Do Not Track najprawdopodobniej oznacza twój prywatny tryb na safari.

Należy pamiętać, że tego nie przetestowałem. Jest to oparte na informacjach dostarczonych przez Apple w powyższym linku.

0

rzeczą, że zdałem sobie sprawę, jest Safari rzuca "Przekroczono limit" błąd w trybie prywatnym. Oto co zrobiłem!

isPrivateMode: function() { 
    if (localStorage.length === 0) { 
    try { 
     localStorage.setItem('isLocalStorageAvaialble', 'That is being tested!'); 
     localStorage.removeItem('isLocalStorageAvaialble'); 
     return false; 
    } catch (e) { 
     return true; 
    } 
    } 
} 

Sprawdzanie długości localStorage jest ważne dla tego, że jeśli próbuje tej metody na przeglądarkę, która obsługuje localStorage, ale jest pełna, jeszcze dostanie „Przekroczono limit” błąd. W trybie prywatnym długość localStorage wynosi zawsze 0.

Mam nadzieję, że to pomoże!

Powiązane problemy