您的位置:首页 > 移动开发 > Objective-C

iOS UIWebView中Objective-C与Javascript的深层交互(一)

2016-06-07 14:37 253 查看
        最近项目中有用到OC与JS的交互,刚开始时候觉得只用一个函数就能搞定交互,即 stringByEvaluatingJavaScriptFromString 后边为JS代码转化的字符串,后来随着项目的内容的增多,逐渐发现功能有些捉襟见肘,网上搜索了一些方法,解决了问题,先总结如下文,借鉴下经验,方便记忆的同时,也希望能稍微帮助到一点别人

      正常的WebView的代理方法就不再多做赘述,iOS7之前没有开放webkit,好多东西做起来比较麻烦,现在简单了好多,一般在返回bool值的代理函数中做判断该页面是不是可以加载,加载完成后有时候需要做一些操作,比如我们这次的监听登录按钮,然后调用本地方法,这个时候之前的方法可能就不能满足需求了。废话不多说了,说正事

 OC调用JS方法

    需要先加入javascript的依赖库
JavaScriptCore.framework ,然后导入头文件#import <JavaScriptCore/JavaScriptCore.h>
。此时就能做操作了,


    首先,创建JSContext的对象,通过webview获取到jscontext



   
JSContext *context=[webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]; 
//获取jscontext对象,上下文


    NSString *alertStr=@"alert('测试的代码')";  //准备执行的js代码 



   
[context evaluateScript:alertStr];//通过oc方法调用js的alert  调用后既执行js的方法


此时会弹出一个类似与iOS种alertview的对话框,若是想调用其他的JS方法,准备好js的代码,然后利用上下文调用该方法就实现了OC调用JS功能的实现。 如实则完成了IOS中OObjective-C对Javascript方法的调用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息