WKWebView+webkit

1140 ワード

近年、ハイブリッドプログラムの発展傾向により、Native+Hybrid方式によって開発圧力を軽減し、開発コストを削減する企業が増えています.iOS 8以降、Appleは新たにWKWebviewを発売し、UICWebViewに代わる.
WKWebviewはWKWebView ConfigrationでJsに呼び出される方法を登録します.
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"];
同時にWKScript Message Handlerを代理してJs呼び出しのメソッド名を取得します.
- (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message{
}
NativeがJsを呼び出します.(Jsコード列を文字列でつなぎ合わせます.)
NSString *action = [NSString stringWithFormat:@"%@('%@','')",actionName,result];
    [self.webView evaluateJavaScript:action completionHandler:^(id _Nullable obj, NSError * _Nullable error) {      
    }];