要运行示例项目,首先是克隆仓库,然后从Example目录中运行pod install
。
为了让这个Pod实际生效,您需要安装webview-reloader-server。
brew install node
npm install -g webview-reloader-server
在您的视图控制器中导入WLWebViewReloader
类别
#import <WLXWebViewReloader/WKWebView+WLXWebViewReloader.h>
以下是如何配置WebView的示例
#import "ViewController.h"
#import <WLXWebViewReloader/WKWebView+WLXWebViewReloader.h>
@import WebKit;
@interface ViewController ()<WKNavigationDelegate, WLXWebViewReloaderDelegate>
@property (nonatomic) WKWebView * webView;
@property (nonatomic) WLXWebViewReloader * webViewReloader;
@end
@implementation ViewController
- (void)loadView {
[super loadView];
self.webView = [[WKWebView alloc] init];
self.view = self.webView;
}
- (void)viewDidLoad {
[super viewDidLoad];
#ifdef DEBUG
self.webView.reloaderIdentifier = @"MyWebView";
self.webView.reloaderDelegate = self;
[self.webView reloadOnFileChange];
#endif
NSURL * URL = [[NSBundle mainBundle] URLForResource:@"index" withExtension:@"html"];
NSURLRequest * request = [NSURLRequest requestWithURL:URL];
self.webView.navigationDelegate = self;
[self.webView loadLocalRequest:request];
}
- (void)viewWillAppear:(BOOL)animated {
[self.webView startListeningToFileChanges];
}
- (void)viewWillDisappear:(BOOL)animated {
[self.webView stopListeningToFileChanges];
}
#pragma mark - WLXWebViewReloaderDelegate methods
- (void)webViewReloader:(WLXWebViewReloader *)reloader didFailToConnect:(NSError *)error {
NSLog(@"Error connecting reloader: %@", error);
}
- (void)webViewReloaderDidConnect:(WLXWebViewReloader *)reloader {
NSLog(@"Reloader connected!");
}
- (void)webViewReloader:(WLXWebViewReloader *)reloader willReloadWebView:(WKWebView *)webView {
NSLog(@"Web view about to be reloaded");
}
- (void)webViewReloader:(WLXWebViewReloader *)reloader didReloadWebView:(WKWebView *)webView {
NSLog(@"Web view reloaded!");
}
@end
WebView的reloaderIdentifier
需要与在webview-reloader-server配置文件中配置的监听器名称匹配。
此外,您需要调用loadLocalRequest:
而不是loadRequest
,以便能够从Web服务器加载源代码。如果没有配置reloader,则loadLocalRequest
将转发到loadRequest
。
Guido Marucci Blas,[email protected]
WLXWebViewReloader在MIT许可证下可用。有关更多信息,请参阅LICENSE文件。