Zajmuję iOS, który ładuje stronę internetową korzystając UIWebView
stron internetowych na ciasteczka nie są wykrywane przez UIWebView
Strona WWW ustawia cztery ciasteczka:
- dwa dla Google Analytics, _ga i _gat
- One dla mojej aplikacji internetowej unikalny licznik odwiedzin
- Jeden dla mojej strony internetowej, aby sprawdzić, czy użytkownik głosował, czy nie.
- 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:
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)")
}
}
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
Moje pliki cookie wygasają po 1 roku. Więc nie są to pliki cookie sesji. – malhobayyeb