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

        最近项目中有用到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方法的调用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章