JavaScriptCore使用Example

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容