使用javaScriptCore实现原生与H5交互

本文详细介绍了H5与原生应用之间的交互方式,包括H5调用原生功能及参数传递,以及原生调用H5代码的两种方法。深入探讨了使用JavaScriptCore进行调用的具体实现,如代理调用、block调用、直接调用等,为开发者提供了实用的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.youkuaiyun.com/download/denggun12345/10753120

                  https://download.youkuaiyun.com/download/denggun12345/10753369

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值