1. 程式人生 > >使用javaScriptCore實現原生與H5互動

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