使用javaScriptCore實現原生與H5互動
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];