OC调用js(JavaScriptCore)
2016-05-19 10:55
429 查看
简单代码如下:
HTML:
-(void)addBtn { //按钮 UIButton *btn=[UIButton buttonWithType:UIButtonTypeCustom]; btn.frame=CGRectMake(0, 0, 100, 40); [btn addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside]; [btn setTitle:@"btn" forState:UIControlStateNormal]; [btn setImage:[UIImage imageNamed:@"hotLine"] forState:UIControlStateNormal]; [btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; [self.view insertSubview:btn aboveSubview:self.webView]; } -(void)btnClick{ //首先创建JSContext 对象(此处通过当前webView的键获取到jscontext) JSContext *context=[self.webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]; NSString *alertJS=@"callSelf()"; //准备执行的js代码 [context evaluateScript:alertJS];//通过oc方法调用js的alert }
HTML:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <script type="text/javascript"> function callOC(value1,value2){ zwlog(value1,value2); } function callSelf(){ alert('test js OC'); } </script> <body bgcolor="#a9a9a9"> <div style="text-align: center;margin-top: 50px"> <input type="button" value="确定" onClick="callOC('11111','1')" /> </div> </body> </html>
相关文章推荐
- phantomjs安装使用
- JS实现点击复制功能(ZeroClipboard)
- javascript 浏览器
- js splice()的用法
- js计算百分比
- ExtJs Column 显示文字内容过长 使用Tootip显示全部内容
- javascript面向对象程序设计高级特性经典教程(值得收藏)
- javaScript判断数据类型
- js对话框5秒自动消失
- 淘宝FastJson使用
- JS中的BOM和DOM
- js中对函数设置默认参数值的3种方法
- javascript 自定义auto_complete
- javascript的事件流
- Promise 常用API
- 通过ajax给js成员变量赋值问题
- js判断一个对象数组里是否存在某个元素
- three.js学习笔记 obj模型加载问题 (转)
- 用JS实现一个表单多个按钮的方法,两个onclick事件处理
- JavaScript中的ParseInt("08")和“09”返回0的原因分析及解决办法