使用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];

示例代码:https://download.csdn.net/download/denggun12345/10753120

                  https://download.csdn.net/download/denggun12345/10753369

展开阅读全文

没有更多推荐了,返回首页