如何在WKWebView上修复受损的Google登录/注册?

Vul*_*kan 6 user-agent ios google-oauth wkwebview

几个星期前我问了一个问题,我认为它可以解决谷歌登录/注册的问题,但它仍然存在问题.

  1. 打开getpocket.com
  2. 单击立即登录>
  3. 点击登录Google

当您输入电子邮件和密码并单击下一步时,页面将变为空白,并且没有任何反应.没有重定向,没有加载,没有.

在Safari中,页面重定向并成功登录.

我已尝试使用stackoverflow.com进行Google登录,但它确实有效!

但我相信它使用的是另一种方法,因为它不会向我询问任何内容,登录只会发生.它甚至没有要求我选择我想登录的帐户.一切都是自动发生的.

通常情况下,如果您输入了电子邮件和密码,Google会要求您选择要用于登录的帐户,而无需再次输入信息.

随着getpocket.com出现此屏幕,我点击我的帐户并冻结.橙色加载条动画播放没有尽头.

我无法理解这是什么问题.

它可能是用户代理吗?

有任何想法吗?

WKWebView的初始化非常基础:

_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];
Run Code Online (Sandbox Code Playgroud)

我甚至尝试了一个流行的网络浏览器iCab Web浏览器,问题仍然存在于getpocket.com

Udd*_*tam 0

以下是我收集的一些研究:

1) https://www.whatismybrowser.com/developers/tools/user-agent-parser/browse/browser-name/icab-user-agents -- 最新的 iCab 有 iCab 用户代理。

2) https://en.wikipedia.org/wiki/User_agent#User_agent_spoofing -- iCab 具有“用户代理欺骗”功能。当您请求 oAuth2.0 时,您的 oAuth 请求由 Google Play 服务控制。如果 Google Play 服务没有 iCab 用户代理,则 Google Play 使用默认用户代理,并最终从服务器中,您的 iCab 浏览器获取重定向页面的 HTML 正文。在此期间,iCab 再次匹配用户代理。在这里,iCab 发现了不同的用户代理,因此它阻止了页面加载。

我从 Chrome 上检查,一切都在运行。所以,可能是用户代理的问题。

https://udger.com/resources/ua-list - 在此站点中,我读到 iCab 使用 webkit 用户代理。

我不太确定,但由于用户代理欺骗功能,很有可能会产生问题。