WKWebView+webkit

近年来由于混合编程的发展趋势,越来越多的企业选择通过Native + Hybrid方式来减轻开发压力和减少开发成本 。 iOS8以后,Apple新推出了WKWebview来替换UIWebView。

WKWebview通过WKWebViewConfiguration注册可以被Js调用的方法。

1
2
3
4
5
WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
configuration.userContentController = [WKUserContentController new];
[configuration.userContentController addScriptMessageHandler:self name:@"setUserInfo"];
[configuration.userContentController addScriptMessageHandler:self name:@"copyToClipboard"];
[configuration.userContentController addScriptMessageHandler:self name:@"alertScanView"];

同时在代理WKScriptMessageHandler中获取Js调用的方法名字

1
2
- (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message{
}

Native调用Js (使用字符串拼接Js代码串)

1
2
3
NSString *action = [NSString stringWithFormat:@"%@('%@','')",actionName,result];
[self.webView evaluateJavaScript:action completionHandler:^(id _Nullable obj, NSError * _Nullable error) {
}];

坚持原创技术分享,您的支持将鼓励我继续创作!