JS 与OC 交互

1、JS调用OC

引入三个名词:
(1)JSContext:给JavaScript提供运行的上下文环境(2)JSValue:JavaScript和Objective-C数据和方法的桥梁
(3)JSExport:这是一个协议,如果采用协议的方法交互,自己定义的协议必须遵守此协议

-(void)webViewDidFinishLoad:(UIWebView *)webView 
{            
        //首先创建JSContext 对象(此处通过当前webView的键获取到jscontext)  
        JSContext *context=[webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];  

        //test1就是js的方法名称,赋给是一个block 里面是iOS代码  
        context[@"text1"] = ^() {
        NSMutableArray * args = [[JSContext currentArguments] mutableCopy];
        JSValue *jsVal1 = args[0];
        NSString * str1 = jsVal1.toString;
        JSValue *jsVal2 = args[1];
        int * num = jsVal2.toInt32;
}

2、OC调用JS

-(void)webViewDidFinishLoad:(UIWebView *)webView 
{      
    //test1和test2均为js的方法名
    //oc向js传递一个参数  
    NSString *jsFunctStr=@"test1('参数1')";  
    [context evaluateScript:jsFunctStr];  
 
    //oc向js传递二个参数  
    NSString *jsFunctStr1=@"test1('参数a','参数b')";  
    [context evaluateScript:jsFunctStr1];  
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容