2017-07-16 70 views
5

Kilka tygodni temu zapytałem o numer question, który prawdopodobnie rozwiązałby problem z logowaniem/rejestracją Google, ale nadal jest uszkodzony.Jak naprawić nieprawidłowe logowanie/rejestrację w WKWebView?

  1. Otwarte getpocket.com
  2. Kliknąć Zaloguj się teraz>
  3. , kliknij Zaloguj korzystając z Google

Kiedy wpiszesz swój e-mail i hasło, a następnie kliknij przycisk Dalej strona staje się puste i nic dzieje się. Brak przekierowań, brak ładowania, nic.

W Safari przekierowania strony i logowanie odbywa się pomyślnie.

Próbowałem zalogować się Google z stackoverflow.com i to działa!

Ale uważam, że używa innej metody, ponieważ nie pyta mnie o nic, logowanie się po prostu dzieje. Nie wymaga nawet ode mnie wybrania konta, z którym chcę się zalogować. Wszystko dzieje się automatycznie.

Zwykle, jeśli podałeś swój adres e-mail i hasło, Google prosi o wybranie konta, którego chcesz używać do logowania bez konieczności ponownego wprowadzania informacji.

Wraz z getpocket.com pojawia się ten ekran, klikam moje konto i zawiesza się. Pomarańczowa animacja paska ładowania odtwarzana jest bez końca.

Nie mogę zrozumieć, na czym polega problem.

Czy to może być program użytkownika?

Wszelkie pomysły?

Inicjowanie WKWebView jest bardzo prosty:

_webView = [[WKWebView alloc] init]; 
_webView.allowsBackForwardNavigationGestures = NO; 
_webView.allowsLinkPreview = NO; 
_webView.navigationDelegate = self; 
_webView.UIDelegate = self; 
_webView.frame = CGRectMake(0.0, 0.0, self.contentView.frame.size.width, self.contentView.frame.size.height); 
[self.contentView addSubview:_webView]; 

Mam nawet próbował popularną przeglądarkę internetową iCab Web Browser a problem nadal istnieje z getpocket.com

Odpowiedz

0

Oto niektóre badania Zebrałem:

1) https://www.whatismybrowser.com/developers/tools/user-agent-parser/browse/browser-name/icab-user-agents - Najnowszy iCab ma agenta użytkownika iCab.

2) https://en.wikipedia.org/wiki/User_agent#User_agent_spoofing - iCab ma funkcję "fałszowania agenta użytkownika". Gdy żądasz oAuth2.0, żądanie OAuth jest kontrolowane przez usługę Google Play. Jeśli usługa Google Play nie ma klienta użytkownika iCab, Google Play używa domyślnego klienta użytkownika, a docelowo z serwera, twoja przeglądarka iCab pobiera treść strony przekierowania HTML. W tym czasie iCab ponownie dopasowuje się do klienta użytkownika. Tutaj iCab znajduje innego klienta, blokując w ten sposób ładowanie strony.

Sprawdziłem od Chrome, wszystko działało. Być może powinien to być problem z powodu użytkownika-agenta.

https://udger.com/resources/ua-list - Na tej stronie czytam iCab korzysta z klienta webkit.

Nie jestem do końca pewny, ale istnieje duże prawdopodobieństwo, ponieważ podszywa się pod użytkownika podając funkcji, stwarza problem.

+0

Może masz rację. Używam tego agenta użytkownika: "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_2 jak Mac OS X) AppleWebKit/603.1.30 (KHTML, jak Gecko) Mobile/14F89 Safari/602.1" – Vulkan

0

zapowiedź Google'a jest jasne: „W najbliższych miesiącach nie będziemy dłużej pozwolić żądań OAuth do Google w wbudowanych przeglądarkach znanych jako «internetowych poglądów», takie jak elemencie WebView UI na Android i UIWebView/WKWebView na iOS i ich ekwiwalenty na Windows i OS X.”

src: theregister.co.uk