JS与Native交互
作者FarWinter,源码IOS-JsAndNativeDemo,通过webview代理方法 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType; 当触发上面的js,webview会收到回调,用上面的代理方法来截获这个request的参数就可以做native需要做的事情。 这中方法比较的麻烦不够清晰,不推荐使用。 有个开源的第三方可以去看看。WebViewJavascriptBridge 从ios7开始苹果公布了JavaScriptCore.framework 这个系统库,用来解决JS与OC的交互。 说明: JavaScriptCore是封装了JavaScript和Objective-C桥接的Objective-C API,只需要较少的的代码,就可以实现JavaScript与Objective-C的相互调用。 iOS7之后苹果推出了JavaScriptCore这个框架,从而让web页面和本地原生应用交互起来非常方便,而且使用此框架可以做到Android那边和iOS相对统一,web前端写一套代码就可以适配客户端的两个平台,从而减少了web前端的工作量。 JavaScriptCore中web页面调用原生应用的方法可以用Delegate或Block两种方法。 JavaScriptCore中类及协议: JSContext:给JavaScript提供运行的上下文环境,JSContext是代表JS的执行环境,通过-evaluateScript:方法就可以执行一JS代码。 JSValue:JSValue封装了JS与ObjC中的对应的类型,以及调用JS的API等,可以理解为JavaScript和Objective-C数据和方法的桥梁。 JSManagedValue:管理数据和方法的类。 JSVirtualMachine:处理线程相关,使用较少。 JSExport:JSExport是一个协议,遵守此协议,就可以定义我们自己的协议,在协议中声明的API都会在JS中暴露出来,才能调用。
- 1
- 粉丝: 2
- 资源: 889
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助