如何修复因不允许使用者造成的功能受损?

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

我正在构建一个网络浏览器,最近我在尝试使用我在网站上的Google帐户登录时遇到了错误.

截图

这很奇怪,因为我检查了我的应用程序和Safari的用户代理,它们都是相同的.

有什么建议?

UPDATE

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

Max*_*lov 5

来自Google 现代化本地应用程序中的OAuth交互以提高可用性和安全性文章:

2017年4月20日,我们将开始使用网络视图阻止OAuth请求,以便在存在可行替代方案的平台上为所有OAuth客户端提供阻止.

因此,Google现在只允许在普通浏览器中使用Google帐户登录,由于安全原因,它会在网络视图中对其进行限制,并为此目的推荐适用于iOSAndroid的 Google SDK .

但是如果你还想使用,WKWebView你可以做一个小技巧,在这个答案中建议,设置customUserAgent它可以通过验证:

// Check for selector availability, as it is available only on iOS 9+
if ([_webView respondsToSelector:@selector(setCustomUserAgent:)]) {
    _webView.customUserAgent = @"MyCustomUserAgent";
}
Run Code Online (Sandbox Code Playgroud)