Joh*_*han 36 uiwebview ios swift ios8 wkwebview
使用旧的UIWebView时,您可以通过实现自定义NSURLProtocol来捕获请求.我这是为了处理需要身份验证的请求.
我尝试了相同的代码,它不适用于新的WKWebView,但我的协议类根本没有被调用.有人遇到同样的问题,还是有更好的方法来使用WKWebView进行身份验证?
在没有任何修改的情况下,我在decisionPolicyForNavigationResponse委托函数中获得了401响应.我还尝试使用NSURLConnection连接到服务器并使用NSURLConnectionDataDelegate处理身份验证.这可行,但WKWebView不会获取存储的凭据.
Leo*_*ica 51
从iOS 11开始,可以声明符合WKURLSchemeHandler
协议的对象 并在WKWebView
配置中注册它:-[WKWebViewConfiguration setURLSchemeHandler:forURLScheme:]
.
WKWebView
发出请求并将内容呈现在进程外,这意味着您的应用程序不会听到他们提出的请求.如果您缺少某项功能,现在是时候向Apple打开错误报告和/或增强请求了.
从iOS 10.3 SDK开始,WKWebView
仍然无法NSURLProtocol
使用公共API 使用自定义.
有进取心的开发人员已经找到了一个有趣的方法:
+[WKBrowsingContextController registerSchemeForCustomProtocol:]
它应该将提供的方案添加到自定义协议处理方案列表中,然后应该使用NSURLProtocol
.