首页 > 解决方案 > WKWebview 自定义方案重定向的问题

问题描述

我正在使用以下库将我的应用程序连接到内部 OAuth2 身份验证: https ://github.com/OAuthSwift/OAuthSwift

该库似乎更喜欢 a SFSafariViewController,但是我需要保留从客户端清除缓存和注销的能力,因此我无法使用它。

我正在尝试使用 aWKWebview而不是成功后无法挂接到库的回调方法。似乎WKWebview忽略了自定义方案重定向。我从来没有看到重定向发生在以下方法中:

func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void)

我曾尝试继承 WKURLSchemeHandler 但似乎这些方法从未被调用过。这就是我这样做的方式:

let conf = WKWebViewConfiguration() conf.setURLSchemeHandler(CustomSchemeHandler(), forURLScheme: "customscheme")
let web = WKWebView(frame: self.view.frame, configuration: conf)
view.addSubview(web)

此外,我已经允许在我的info.plist.

重定向和回调也可以使用 a 成功工作UIWebview,但我不想使用它,因为它在 iOS12 中已被弃用。

任何想法为什么 WKWebview 会忽略重定向?

标签: iosswiftoauth-2.0wkwebview

解决方案


推荐阅读