我正在构建一个网络浏览器最近我在网站上尝试使用我的Google帐户登录时遇到了错误。
这很奇怪,因为我检查了我的应用程序和Safari的用户代理,它们都是相同的。
有什么建议吗?
更新
WKWebView嵌套在自定义UIViews树的3层深处。
这是初始化代码:
_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];
答案 0 :(得分:5)
来自Google Modernizing OAuth interactions in Native Apps for Better Usability and Security文章:
2017年4月20日,我们将开始使用网络视图阻止OAuth请求,这些请求适用于存在可行替代方案的平台上的所有OAuth客户端。
因此,Google现在只允许在普通浏览器中使用Google帐户登录,由于安全原因,它会在网络视图中对其进行限制,并为此目的推荐iOS和Android的Google SDK。
但是,如果你仍然想使用WKWebView
,可以在this回答中建议一个小技巧,设置customUserAgent
以便它可以通过验证:
// Check for selector availability, as it is available only on iOS 9+
if ([_webView respondsToSelector:@selector(setCustomUserAgent:)]) {
_webView.customUserAgent = @"MyCustomUserAgent";
}