参考文章:
IOS WKWebview 使用集锦
WKwebView和JS交互
自己的OCdemo
自己的swiftDemo
JS调用OC的方法
1、首先要实现一个协议WKScriptMessageHandler
2、在初始化WebView时,配置config
在dealloc里移除
-(void)removeScriptMessageHandlerForName:(NSString *)name;
3、处理和实现方法
/**
根据方法名做相应的处理
@param userContentController userContentController description
@param message message description
*/
- (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(nonnull WKScriptMessage *)message{
//message.name,message.body,message.frameInfo
if ([message.name isEqualToString:@"WXPay"]) {
dispatch_async(dispatch_get_main_queue(), ^{
});
}
至此,H5调用OC的方法已完成
OC调用JS方法
在WebView加载完成后调用
#pragma mark- ------------------------OC 调用JS方法
//OC调用JS的方法:getImages()是方法名和参数
[_webView evaluateJavaScript:@"getImages()" completionHandler:^(id _Nullable script, NSError * _Nullable error) {
//代码出错可以在这里处理
}];
//pragma mark- ------------------------swift 调用JS方法
//在这里我调用的是点击sendAPP按钮的方法(注意打印结果输出,我们并没有点击按钮,但是输出了fuction1方法)
webView.evaluateJavaScript("sendApp()") { (result, error) in
guard error == nil else {
print("there was an error")
print(error)
return
}
}