gpt4 book ai didi

ios - WKWebView 和 NSURLProtocol 不工作

转载 作者:IT王子 更新时间:2023-10-29 05:02:58 26 4
gpt4 key购买 nike

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

我尝试了相同的代码,但它不适用于新的 WKWebView,但我的协议(protocol)类根本没有被调用。有人遇到同样的问题还是有更好的方法使用 WKWebView 进行身份验证?

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

最佳答案

iOS 11 和 macOS 10.13 的更新答案

从 iOS 11 开始,可以声明一个符合 WKURLSchemeHandler 协议(protocol)的对象,并将其注册到 WKWebView 配置中:-[WKWebViewConfiguration setURLSchemeHandler:forURLScheme :]

旧答案

WKWebView 发出请求并在进程外呈现内容,这意味着您的应用不会听到它们发出的请求。如果您缺少某个功能,现在是向 Apple 提交错误报告和/或增强请求的时候了。

从 iOS 10.3 SDK 开始,WKWebView 仍然无法通过公共(public) API 使用自定义 NSURLProtocol


有进取心的开发人员发现了一个有趣的方法: +[WKBrowsingContextController registerSchemeForCustomProtocol:]它应该将提供的方案添加到自定义协议(protocol)处理方案列表中,然后应该与 NSURLProtocol 一起使用。

关于ios - WKWebView 和 NSURLProtocol 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24208229/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com