Od czasu wydania Chrome 63 na Androida, 6 grudnia 2017 r. Napotkałem problem z aplikacją Android firmy Cordova. Ta aplikacja obejmuje ramki IFrame, które pozwalają użytkownikom nawigować po częściach witryny eCommerce mojej firmy z poziomu aplikacji.Aplikacja Android Cordova z ramkami IFrames Chrome 63 Brak nagłówków żądań Pliki cookie
Nawigacja między stronami załadowanymi do ramki IFrames nie powoduje już wysyłania informacji o plikach cookie w nagłówkach zgłoszeń.
Informacje, takie jak identyfikatory sesji przechowywane w pliku cookie, nie są przekazywane do następnej strony, co z kolei powoduje, że następna strona rozpoczyna zupełnie nową sesję użytkownika!
Co jednak dziwne, wszystkie wywołania AJAX utworzone na stronie w IFrame (np. Aby pobrać liczbę pozycji w koszyku) i żądania zasobów (css js, pliki obrazów itp.) Wysyłają informacje cookie w żądaniu nagłówki dobrze. Identyfikator sesji w tych nagłówkach jest identyczny między stronami, co wskazuje na trwałość sesji.
Pliki cookie są tworzone w porządku i widzę je podczas korzystania z narzędzi programistycznych Chrome w panelu Aplikacje w domenie firm. Po prostu nie są przekazywane do następnej strony.
Doświadczyłem tego problemu na urządzeniu z Androidem 7.1.1. Po wyłączeniu aplikacji Chrome na tym urządzeniu nagłówki żądań plików cookie w ramkach IFrame w aplikacji znów zaczynają działać poprawnie, prawdopodobnie przeglądarka internetowa Cordova nie używa już Chrome, gdy jest wyłączona?
Czy ktoś wie, co może być przyczyną tego problemu? Czy może to być coś związanego z plikami cookie SameSite lub ścisłymi zmianami izolacji witryny lub innymi zmianami związanymi z bezpieczeństwem w Chrome 63?
Problem pojawia się podobny do tego błędu, że Chromium została ustalona października 2016: https://bugs.chromium.org/p/chromium/issues/detail?id=634311
Webview ma jednak ThirdParty ciasteczka włączone w klasie SystemCookieManager biblioteki Cordova (Cordova Androida 6.4.0):
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
cookieManager.setAcceptThirdPartyCookies(webView, true);
}
Przepraszam, jeśli niczego nie sprecyzowałem wystarczająco jasno. Chętnie udzielę dodatkowych informacji, jeśli ktoś może pomóc w rozwiązaniu tego problemu.
Mamy ten sam problem, dziękuję za opis. Wygląda na to, że korzystanie z elementu iframe w Cordowie nie jest odporne na działanie nowych technologii, nadal będzie podlegać ograniczeniom bezpieczeństwa. Szukamy możliwości użycia programu themeablebrowser lub inappbrowser cordova. – Jerem
To nie wydaje się być sprawą Chrome vs System WebView, ale czysto związaną z wersją. Na moim telefonie mam system WebView v63 i Chrome v62. Przy tym ustawieniu aplikacja będzie cierpieć z powodu opisanego problemu. Po usunięciu aktualizacji systemu WebView problem zniknie. Nie mam sposobu, aby zmusić Chrome do aktualizacji do wersji 63, v62 to najnowsza wersja, którą mogę zainstalować. Nie mogę więc powiedzieć na pewno, który silnik/wersja jest używana w tym przypadku. –