一般情况下都会遇到原声开发和js的交互问题,会引用一个框架JavaScriptCore,导入头文件<JavaScriptCore/JavaScriptCore.h> 即可。那么就会有俩种情况:
(代参数和不带参数)
//通过OC调用此方法
NSString * method = @"dolike";
JSValue * function = [self.context objectForKeyedSubscript:method];
//这里面的a,b,c就是OC调用JS的时候给JS传的参数
[function callWithArguments:@[a,b,c]];(不带参数就传nil)
//JS调用OC
//例如网页中有个标签,点击button的时候调用Jump方法, 此处3为传入的参数
<button onclick="jump('3')">点我</button>
//当点击网页中的button的时候,触发jump方法, 在OC中用如下代码可以捕捉到
jump方法, 并拿到JS给我传的参数‘3’
self.context[@"jump"] = ^(NSString * str){
//此处 str 值为'3'(js调用OC时传给OC的参数)
};
//不带参数就是
self.context[@"jump"] = ^{
//此处 实现方法
};
网友评论