2016-04-12 16 views
6

Zajmuję iOS, który ładuje stronę internetową korzystając UIWebViewstron internetowych na ciasteczka nie są wykrywane przez UIWebView

Strona WWW ustawia cztery ciasteczka:

  1. dwa dla Google Analytics, _ga i _gat
  2. One dla mojej aplikacji internetowej unikalny licznik odwiedzin
  3. Jeden dla mojej strony internetowej, aby sprawdzić, czy użytkownik głosował, czy nie.
    1. Jeśli ten plik cookie jest dostępny, wyświetl wyniki ankiety.

Od Firefoksa Storage Inspector widzę wszystkie moje ciasteczka zgodnie z oczekiwaniami, patrz zrzut ekranu:

enter image description here

Jednak z iOS wydrukowałem NSHTTPCookieStorage.sharedHTTPCookieStorage().cookies od wewnątrz webViewDidFinishLoad a tam jest tylko dwóch z czterech oczekiwanych pliki cookie, także użytkownicy iOS mogą głosować tyle razy, ile chcieli, ponieważ pliki cookie nie są wykrywane (lub nie są przechowywane na urządzeniu z systemem iOS):

if let cookies = NSHTTPCookieStorage.sharedHTTPCookieStorage().cookies { 
    for c in cookies { 
     print("*******************") 
     print("name: \(c.name)") 
     print("domain: \(c.domain)") 
     print("value: \(c.value)") 
     print("path: \(c.path)") 
     print("expiresDate: \(c.expiresDate)") 
    } 
} 

enter image description here

Dlaczego moja aplikacja iOS nie wykrywa moje własne pliki cookie i wykrywa tylko te moje Google Analytics?

UWAGA 1: Dodałem także ten kod do mojego app:

func applicationDidBecomeActive(application: UIApplication) { 
    NSHTTPCookieStorage.sharedHTTPCookieStorage().cookieAcceptPolicy = NSHTTPCookieAcceptPolicy.Always 
}   

Uwaga 2: Moje backend jest SharePoint aplikacji internetowych

Odpowiedz

0

Kilka pomysłów:

Safari „blokowania urządzenia Ustawienia "cookies" zastępują wszelkie zmiany w cookieAcceptPolicy. Domyślną zasadą tego ustawienia na urządzeniu jest "Zezwól na odwiedzane strony internetowe", które w zależności od wersji urządzenia iOS umożliwiają pliki cookie innych firm. Testowanie z iOS 9.3.x pokazuje, że pliki cookie stron trzecich są przechowywane w ustawieniach domyślnych z ustawieniami domyślnymi, ale nie są trwałe przy ustawieniach "Zezwól tylko na bieżącą witrynę" lub "Zawsze blokuj".

Sprawdź, czy urządzenie nadal utrzymuje plik cookie z różnymi ustawieniami przeglądarki Safari.

Dodatkowo, czy Twój plik cookie ma ustawioną datę ważności? Zauważyłem, że pliki cookie bez ustawionej daty wygaśnięcia są traktowane jako pliki cookie sesji w pliku UIWebView, który zachowuje trwałość tylko w cyklu życia widoku sieci, który je otrzymał.

+0

Moje pliki cookie wygasają po 1 roku. Więc nie są to pliki cookie sesji. – malhobayyeb

Powiązane problemy