iOS wkwebview object-c 拦截不出现 WebPageProxyIgnoring request to load this main resource because it is outside the sandbox 的代码
要拦截iOS中的WKWebView加载网页时出现的“WebPageProxy::Ignoring request to load this main resource because it is outside the sandbox”错误,可以通过设置WKNavigationDelegate来实现。
首先,在你的ViewController的.h文件中,声明WKNavigationDelegate代理:
@interface YourViewController : UIViewController <WKNavigationDelegate>
@end
然后,在.m文件中的viewDidLoad方法中设置WKWebView的navigationDelegate为当前ViewController:
- (void)viewDidLoad {
[super viewDidLoad];
WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
WKWebView *webView = [[WKWebView alloc] initWithFrame:self.view.frame configuration:configuration];
webView.navigationDelegate = self;
[self.view addSubview:webView];
// 加载网页
NSURL *url = [NSURL URLWithString:@"https://www.example.com"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];
}
最后,实现WKNavigationDelegate的方法,包括拦截加载请求的方法:
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
NSURL *url = navigationAction.request.URL;
// 判断是否为指定的网页资源
if ([url.absoluteString isEqualToString:@"https://www.example.com"]) {
// 拦截处理
decisionHandler(WKNavigationActionPolicyCancel);
return;
}
// 其他情况继续加载
decisionHandler(WKNavigationActionPolicyAllow);
}
- (void)webView:(WKWebView *)webView didFailNavigation:(WKNavigation *)navigation withError:(NSError *)error {
// 处理加载失败的情况
NSLog(@"%@", error.localizedDescription);
}
- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation *)navigation withError:(NSError *)error {
// 处理加载失败的情况
NSLog(@"%@", error.localizedDescription);
}
在以上代码中,我们通过实现webView:decidePolicyForNavigationAction:decisionHandler:方法来拦截加载请求,并根据需要决定是否继续加载。在这个方法里,我们可以判断请求的URL是否是我们指定的网页资源,如果是则拦截处理,否则继续加载。
注意,以上代码中的https://www.example.com是一个示例,你需要将其替换为你需要拦截的具体网址。
希望这个代码可以帮助到你解决拦截WKWebView加载时出现“WebPageProxy::Ignoring request to load this main resource because it is outside the sandbox”错误的问题
原文地址: https://www.cveoy.top/t/topic/ivHz 著作权归作者所有。请勿转载和采集!