iOS 与 HTML5 交互、JavaScriptCore.framework从 iOS7 开始,苹果公布了JavaScriptCore.framework,可以通过该框架实现 OC程序与 JS 程序的交互。2.使用 JavaScriptCore 框架a.弓丨入 JavaScriptCore・framework1.b.在需要的地方引入框架中的JavaScriptCore・h 文件#import"JSContext.h"#import"JSValue.h"#import"JSManagedValue.h"#import"JSVirtualMachine.h#import"JSExport.h"JSVirtualMachine 为 JavaScript 的运行提供了底层资源,JSContext 就为其提供着运行环境,通过-(JSValue*)evaluateScript:(NSString*)script;方法就可以执行一段 JavaScript 脚本,并且如果其中有方法、变量等信息都会被存储在其中以便在需要的时候使用(1)JSValueJavaScript 中的变量没有硬性的类型,JSValue 为Objective-C 封装的类,它的对象是 JavaScript 中变量的映射。在 JS 与 0C 程序数据交流的时候,JSValue 的对象是一个桥梁。Objective-C 与 JavaScript 变量类型的对应关系Objective-Ctype|JavaScripttype+nil|undefinedNSNull|nullNSString|stringNSNumber|number,booleanNSDictionary|ObjectobjectNSArray|ArrayobjectNSDate|DateobjectNSBlock(1)|Functionobject(1)id(2)|Wrapperobject(2)Class(3)|Constructorobject(3)(2)JSContextJSContext 的对象为 OC 和 JS 交流的上下文,或者称为句柄,在交流过程当中,多数 OC 与 JS 的互相调用都要通过上下文来实现。(3)JSExport,它是一个协议,遵守此协议就可以定义我们自己的协议,在协议中声明的 API 都会在 JS 中暴露出来4.代码实例-(void)webViewDidFinishLoad:(UIWebView*)webView{//创建一个新的上下文JSContext*context=[[JSContextalloc]init];//执行一句 js 代码,返回值为 js 代码返回值JSValue*jsVal=[contextevaluateScript:@"21+7"];//将 JSValue 对象转化为 0C 对象或者基础数据类型变量intiVal=[jsValtoInt32];NSLog(@"JSValue:%@,int:%d",jsVal,iVal);//用 JS 语句声明一个数组变量[contextevaluateScript:@"vararr=[12,44,'Hello']"];//通过上下文获取这个变量JSValue*jsArr=context[@"arr"];//转化为 0C 对象NSArray*arr=[jsArrtoArray];NSLog(@"%@",arr);//在当前上下文中为 js 添加一个 log 方法对象context[@"log"]=A(){NSArray*arr=[JSContextcurrentArguments];NSLog(@"arguments==%@...