Xcode WKWebView 加载 HbuilderX 打包 HTML 带网络请求 (Objective-C)
在使用WKWebView加载HubilderX打包出来的HTML时,如果你想要在HTML中进行网络请求,可以通过以下步骤实现:
- 在Objective-C中创建一个继承自WKWebView的子类,例如CustomWebView。
@interface CustomWebView : WKWebView
@end
@implementation CustomWebView
@end
- 在CustomWebView.m文件中,重写WKNavigationDelegate的方法,以拦截网页中的网络请求。
@interface CustomWebView () <WKNavigationDelegate>
@end
@implementation CustomWebView
- (instancetype)initWithFrame:(CGRect)frame configuration:(WKWebViewConfiguration *)configuration {
self = [super initWithFrame:frame configuration:configuration];
if (self) {
self.navigationDelegate = self;
}
return self;
}
#pragma mark - WKNavigationDelegate
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
NSURLRequest *request = navigationAction.request;
// 判断是否是网络请求
if ([request.URL.scheme hasPrefix:@'http']) {
// 进行网络请求
// ...
// 确定允许加载请求
decisionHandler(WKNavigationActionPolicyAllow);
} else {
// 不是网络请求,允许加载请求
decisionHandler(WKNavigationActionPolicyAllow);
}
}
@end
- 在你的视图控制器中,使用CustomWebView来加载HTML。
CustomWebView *webView = [[CustomWebView alloc] initWithFrame:self.view.bounds configuration:[[WKWebViewConfiguration alloc] init]];
[self.view addSubview:webView];
NSURL *htmlURL = [[NSBundle mainBundle] URLForResource:@'YourHTMLFileName' withExtension:@'html'];
[webView loadRequest:[NSURLRequest requestWithURL:htmlURL]];
通过以上步骤,你可以在Objective-C中使用WKWebView加载HubilderX打包出来的HTML,并在HTML中进行网络请求。在CustomWebView中重写了webView:decidePolicyForNavigationAction:decisionHandler:
方法,以拦截所有的网络请求,并在需要的时候进行处理。
原文地址: http://www.cveoy.top/t/topic/p5Mv 著作权归作者所有。请勿转载和采集!