美文网首页
JavaScriptCore使用Example

JavaScriptCore使用Example

作者: 忧郁的小码仔 | 来源:发表于2015-11-25 10:36 被阅读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

    相关文章

      网友评论

          本文标题:JavaScriptCore使用Example

          本文链接:https://www.haomeiwen.com/subject/hoorhttx.html