我正在构建一个网络浏览器,最近在尝试使用我的 Google 帐户在网站上登录时遇到错误。
这很奇怪,因为我检查了我的应用程序和 Safari 的用户代理,它们都是相同的。
有什么建议么?
UPDATE
WKWebView 在自定义 UIView 树中嵌套了 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];
来自谷歌现代化本机应用程序中的 OAuth 交互,以提高可用性和安全性 https://developers.googleblog.com/2016/08/modernizing-oauth-interactions-in-native-apps.html文章:
2017 年 4 月 20 日,我们将开始在存在可行替代方案的平台上开始使用 Web 视图阻止所有 OAuth 客户端的 OAuth 请求。
因此,Google 现在只允许在普通浏览器中使用 Google 帐户登录,出于安全原因限制在网络视图中登录,并推荐使用 Google SDKiOS https://developers.google.com/identity/sign-in/ios/ and Android https://developers.google.com/identity/sign-in/android/以此目的。
但如果你仍然想使用WKWebView
你可以做一个小技巧,建议在this https://stackoverflow.com/a/42386804/1948606回答、设置customUserAgent
所以它可以通过验证:
// Check for selector availability, as it is available only on iOS 9+
if ([_webView respondsToSelector:@selector(setCustomUserAgent:)]) {
_webView.customUserAgent = @"MyCustomUserAgent";
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)