1.首先创建一个简单的html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script>
//showAlert方法
function showAlert(String){
alert(String)
}
</script>
</head>
<body>
<button type="button" onclick="onClickOC('helloworld')" >Click</button>
</body>
</html>
2.在原生代码上,与js交互需要引用JavaScriptCore.h,
#import "JavaScriptCore/JavaScriptCore.h"
3.h5调用iOS方法并传值
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
//首先创建JSContext 对象
JSContext *context=[webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
//定义好JS要调用的方法, onClickOC就是调用h5的onClickOC方法名,string是js传过来的参数
//h5上的方法调用iOS方法并向ios传值
context[@"onClickOC"] = ^(NSString *string){
NSLog(@"onClickOC==%@",string);
};
}
4.oc调用h5方法并传值
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
//首先创建JSContext 对象
JSContext *context=[self.webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];\
//准备执行的js代码 iOS调h5 是传给js的参数,(字符串是单引号)
NSString *alertJS=@"showAlert('iOS调h5')";
//通过oc方法调用js的alert
[context evaluateScript:alertJS];
}