我有一个只有wkwebview的iOS项目。我尝试在webview中加载我的Web应用程序。在Web应用程序中,有一个连接facebook和linkedin的功能。此部分在Web应用程序中实现并正在运行。通过工作我的意思是,如果我在桌面浏览器或iPhone Safari浏览器中打开我的Web应用程序,并尝试连接Facebook和其工作。
我面临的问题是,当我尝试通过wkwebview连接帐户时,它无法正常工作。使用代码和状态调用重定向URL(如果是linkedin),但在成功验证后有一个空白屏幕,并且它不会重定向回原始页面,并且没有连接发生。
在decidePolicyForNavigationAction
内部,我正在拦截重定向网址,它具有预期的代码和状态(linkedin)。但不知何故它没有联系。
其他选项是,当我们从重定向URL获取代码和状态时,拦截它并发送一个post请求来获取accesstoken,然后调用自定义服务器api来保存accessstoken。但所有这些都已在Web应用程序中实现,我不想重做它。
即使在成功调用重定向网址之后,它也可能出现问题。
希望你能理解这个问题。
提前致谢。
编辑:
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
if ([navigationAction.request.URL.absoluteString isEqualToString:@"https://a.sitename.com/Account/ExternalLoginCallback"]) {
self.webView.navigationDelegate = nil;
decisionHandler(WKNavigationActionPolicyCancel);
}
return decisionHandler(WKNavigationActionPolicyAllow);
}