iOS wkwebview 拦截不出现 WebPageProxyIgnoring request to load this main resource because it is outside the sandbox 的代码
以下是一个iOS WKWebView的示例代码,用于拦截并处理特定URL的请求:
import UIKit
import WebKit
class ViewController: UIViewController, WKNavigationDelegate {
var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
let configuration = WKWebViewConfiguration()
configuration.websiteDataStore = WKWebsiteDataStore.nonPersistent()
webView = WKWebView(frame: view.bounds, configuration: configuration)
webView.navigationDelegate = self
view.addSubview(webView)
let url = URL(string: "https://example.com")!
let request = URLRequest(url: url)
webView.load(request)
}
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
if let url = navigationAction.request.url {
if url.absoluteString.hasPrefix("https://example.com") {
// 拦截特定URL的请求,并执行相应的处理逻辑
// decisionHandler(.cancel) 可以取消该请求
decisionHandler(.allow)
return
}
}
decisionHandler(.allow)
}
}
在上述示例中,我们创建了一个WKWebView,并设置了其navigationDelegate为当前的视图控制器。然后,我们加载了一个URL请求,当WKWebView加载请求时,decidePolicyFor方法会被调用,我们可以在这个方法中拦截并处理特定URL的请求。在示例中,我们判断了请求的URL是否以"https://example.com"开头,如果是的话,我们可以执行相应的处理逻辑,如取消该请求或执行其他操作。
请注意,上述代码只是一个简单的示例,您可能需要根据实际需求进行更多的处理和错误检查。此外,您还需要在项目中导入WebKit框架,并添加相应的权限和设置以使用WKWebView
原文地址: https://www.cveoy.top/t/topic/ivHy 著作权归作者所有。请勿转载和采集!