使用旧的UIWebView时,可以通过实现自定义NSURL协议来捕获请求.我使用它来处理需要身份验证的请求.

我try 了相同的代码,但在新的WKWebView中不起作用,但根本没有调用我的协议类.是否有人遇到了同样的问题,或者是否有更好的方法使用WKWebView进行身份验证?

在没有任何修改的情况下,我在decidePolicyForNavigationResponse委托函数中得到了401响应.我还try 了使用NSURLConnection连接到服务器,并使用NSURLConnectionDataDelegate处理身份验证.这是可行的,但WKWebView不会获取存储的凭据.

推荐答案

iOS 11和macOS 10.13的更新答案

由于iOS 11,可以声明一个符合WKURLSchemeHandler协议的对象,并将其注册到WKWebView配置:-[WKWebViewConfiguration setURLSchemeHandler:forURLScheme:]中.

老生常谈

WKWebView在进程外发出请求并呈现内容,这意味着你的应用程序不会听到他们发出的请求.如果你缺少一项功能,现在是时候打开一个bug报告和/或苹果的增强请求了.

截至iOS 10.3 SDK,WKWebView仍然无法使用使用公共API的定制NSURLProtocol.


有进取心的开发人员发现了一种有趣的方法:

Swift相关问答推荐

如何在HStack中均匀分布视图?

SWIFT Vapor控制台应用程序-操作无法完成.权限被拒绝

编写Swift字符串的属性包装时遇到问题

为SwiftUI文本视图提供固定宽度,并仅在文本换行时使文本视图底部增大

是否可以循环遍历SWIFT子类并访问它们的静态变量S?

background Task(.backgroundTask)不适用于MySQL

如何使用AsyncTimerSequence获取初始时钟,然后在指定的时间间隔内开始迭代?

swift:只要框架名称中有一个带有框架名称的公共实体,就指定框架中公共 struct 的路径

OSX 中的 Popover 无法确定透明度

SwiftUI 交易:根据外部状态制作一个动画或静止的按钮

仅当 boolean 为真时才实现方法(application:didReceiveRemoteNotification)

如何延迟 swift 属性 didSet 使其每秒只触发一次

如果 Swift 无法分配内存会怎样?

SwiftUI:从存储在 observableObject 中的数组中删除对象时查看崩溃

我如何从 UIAlertController 导航到新屏幕(swiftUI)

在视图中设置所有变量

如何从元组数组创建字典?

CMutablePointer - 如何访问它?

Swift - 迭代 struct 对象时如何对其进行变异

swift - 我可以从我的自定义初始化方法中调用 struct 默认成员初始化吗?