JavaScriptCore使用Example

2015-11-25  本文已影响162人  忧郁的小码仔

JavaScriptCore是iOS7之后apple提供的一个Native与js之间通信用的一个framework.

1. 利用JavaScriptCore我们可以直接在native中调用js, 如下:

JSValue*add =self.context[@"add"]; // 获取js中的add function.

JSValue*sum = [add callWithArguments:@[@(7),@(21)]]; // 执行js中的add function.

2.利用javaScriptCore在js中直接调用native中的方法,如下:

var person;//用这个全局变量和native的Person变量绑定,之后就可以像下面这样直接用它去调用native的方法了。

function doFooWithBar() {

person.doFooWithBar("这是从js里面调用的","OC native的方法");

}

3.内存管理,因为OC中的内存管理和js中的内存管理方式完全不同,为了防止两边的内存访问出错,javaScriptCore提供了JSVirtualMachine为整个JavaScriptCore的执行提供资源,所以当将一个JSValue转成JSManagedValue后,就可以添加到JSVirtualMachine中,这样在运行期间就可以保证在Objective-C和JavaScript两侧都可以正确访问对象而不会造成不必要的麻烦。

可执行demo请参考gitHub:github.com/archerLj/JavaScriptCoreExample/tree/master

上一篇下一篇

猜你喜欢

热点阅读