javaScriptCore与原生交互
1、H5调原生:
1》通过代理调原生,并回调(此处用到了jsExportAs):
1.1:代理调原生并传参给原生:<input type="button" value="计算阶乘"onclick="app.calculateForJS(document.getElementById('input').value);" />
1.2:原生回调js并传参给js:[self.context[@"showResult"] callWithArguments:@[result]];//回调参数result
2》block调原生方法:
block直接调用原生的方法:
H5:
<input type="button" value="addSubView" onclick="addSubView('view');" />
原生:
self.context[@"addSubView"] =
^(NSString *viewname)
{
UIView *view = [[UIView alloc]initWithFrame:CGRectMake(10, 500, 300, 100)];
view.backgroundColor = [UIColor redColor];
UISwitch *sw = [[UISwitch alloc]init];
[view addSubview:sw];
[weakSelf.view addSubview:view];
};
2、javaScriptCore版原生调H5:
1》用evaluateScript方法直接调用
[self.context evaluateScript:@“h5代码”];
2》objectForKeyedSubscript + callWithArguments 方法调用
JSValue *value3 = [self.context objectForKeyedSubscript:@"sum"];
JSValue * value4 = [value3 callWithArguments:@[@20,@10]];
NSNumber *uu = [value4 toNumber];
示例代码:https://download.csdn.net/download/denggun12345/10753120