ios与js交互

1.首先创建一个简单的html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>

    <script>
        //showAlert方法
        function showAlert(String){
            alert(String)
        }
    
        </script>

</head>

<body>
<button type="button" onclick="onClickOC('helloworld')" >Click</button>
</body>
</html>

2.在原生代码上,与js交互需要引用JavaScriptCore.h,

#import "JavaScriptCore/JavaScriptCore.h"

3.h5调用iOS方法并传值

-(void)webViewDidFinishLoad:(UIWebView *)webView
{
    //首先创建JSContext 对象
    JSContext *context=[webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
    //定义好JS要调用的方法, onClickOC就是调用h5的onClickOC方法名,string是js传过来的参数
    //h5上的方法调用iOS方法并向ios传值
    context[@"onClickOC"] = ^(NSString *string){
        NSLog(@"onClickOC==%@",string);
    };
}

4.oc调用h5方法并传值

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    //首先创建JSContext 对象
    JSContext *context=[self.webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];\
    //准备执行的js代码 iOS调h5 是传给js的参数,(字符串是单引号)
    NSString *alertJS=@"showAlert('iOS调h5')";
    //通过oc方法调用js的alert
    [context evaluateScript:alertJS];
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值