Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[JavaScriptCore] 启蒙篇 #19

Open
jschyz opened this issue Sep 4, 2018 · 0 comments
Open

[JavaScriptCore] 启蒙篇 #19

jschyz opened this issue Sep 4, 2018 · 0 comments

Comments

@jschyz
Copy link
Owner

jschyz commented Sep 4, 2018

JavaScriptCore framework 是 iOS7 新引入的功能。该框架让 Objective-C 和 JavaScript 代码直接的交互变得更加的简单方便。

JavaScriptCore 可以理解为一个可运行 JavaScript 的容器,除了以往的 WebView 容器有这个能力以外。

同时,JavaScriptCore 能获取 WebView 容器执行 JavaScript 上下文环境,拥有 H5 与 Native 交互的能力,如 Hybrid 技术。

同样,JavaScriptCore 也能单独运行 JavaScript,如 React-Native 技术、JSpatch 技术。

JavaScriptCore中的类

要使用JavaScriptCore,首先我们需要引入它的头文件 #import <JavaScriptCore/JavaScriptCore.h>

链到这个头文件,内容如下:
image

里面引入了几个重要的类:

  • JSContext JavaScript runtime,可以执行 js 代码和注册 native 方法接口
  • JSValue JSContext执行后的返回结果,他可以是任何js类型(比如基本数据类型和函数类型,对象类型等)
    并且都有对象的方法转换为native对象
  • JSManagedValue JSValue的封装,用它可以解决 js 和 native代码之间循环引用的问题
  • JSVirtualMachine 管理JS运行时和管理js暴露的native对象的内存
  • JSExport 是一个协议,通过实现它可以完成把一个 native对象 暴漏给js,起到安全的作用
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant