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方法的调用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值