39 | 打通前端与原生的桥梁:JavaScriptCore 能干哪些事情?
戴铭
该思维导图由 AI 生成,仅供参考
你好,我是戴铭。
今天这篇文章是原生与前端共舞模块的第一篇,我来跟你聊聊前端和原生之间的桥梁 JavaScriptCore,看看它是什么、能做哪些事儿。
总结来说,JavaScriptCore 为原生编程语言 Objective-C、Swift 提供调用 JavaScript 程序的动态能力,还能为 JavaScript 提供原生能力来弥补前端所缺能力。
正是因为 JavaScriptCore 的这种桥梁作用,所以出现了很多使用 JavaScriptCore 开发 App 的框架 ,比如 React Native、Weex、小程序、WebView Hybird 等框架。
接下来,我们再回过头来看看,JavaScriptCore 的来头是啥,为什么这些框架不约而同地都要用 JavaScriptCore 引擎来作为前端和原生的桥梁呢?
要回答这个问题的话,你还需要了解 JavaScriptCore 的背景。
JavaScriptCore,原本是 WebKit 中用来解释执行 JavaScript 代码的核心引擎。解释执行 JavaScript 代码的引擎自 JavaScript 诞生起就有,不断演进,一直发展到现在,如今苹果公司有 JavaScriptCore 引擎、谷歌有 V8 引擎、Mozilla 有 SpiderMonkey。对于 iOS 开发者来说,你只要深入理解苹果公司的 JavaScriptCore 框架就可以了。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
JavaScriptCore 是 iOS 中的桥梁技术,连接了前端和原生应用,为二者提供了相互调用的能力。该框架由 JSVirtualMachine、JSContext 和 JSValue 类组成,使原生应用能够执行 JavaScript 代码、访问 JavaScript 变量和执行 JavaScript 函数,同时也允许 JavaScript 调用原生代码。JavaScriptCore 引擎内部由 Parser、Interpreter、Compiler、GC 等部分组成,通过优化器实现对运行频次高的函数或循环的优化。这种交互方式和内部机制为开发者提供了深入了解和充分利用该框架的基础。JavaScriptCore 提供了前端与原生相互调用的接口,通过 JSContext 和 JSValue 类的方法以及 JSExport 协议,实现了前端与原生的互通。这种桥梁技术的优势在于充分利用前端快速编写 UI 和原生对平台特性的天然支持,为开发者提供了更多有趣的可能性。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《iOS 开发高手课》,新⼈⾸单¥59
《iOS 开发高手课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(14)
- 最新
- 精选
- Ansion课后作业: 可以借助JSContext与JSValue的类型转换和OC的Runtime消息转发机制实现动态调用,巧妙避开Export协议; 可以参考JSPatch的实现原理2019-06-11220
- 哈WKWebView用不到JavaScripCore吧…毕竟取不到JSContext…2019-06-1117
- kevin这里讲的方式还是基于uiwebview hybrid开发,wkwebview 还是很大的不同吧,现在用webviewjavascriptbrigde多一些。2019-06-1115
- Sunny老师,你在文中说“JSContext 会调用 evaluateScript 方法,返回 JSValue 对象。”,应该是生成JSValue 对象,而不是返回吧?2019-10-2323
- 淡戴老师你好,请问后面会讲解通过WKWebview来构建hybrid app吗?目前正在用vue.js写前端,用WKWebview作web容器,不知道业界是怎么打造自己的hybrid app的,还请给些指导,谢谢。2019-06-1423
- Xqqq0不知道大神会不会讲NSURLProtocol的实战,希望会🙏🙏🙏2019-06-113
- jun“JavaScriptCore 框架的框架名是 JavaScriptCore.framework。由于苹果公司的系统已经内置了 JavaScriptCore 框架,而且性能不逊色于 V8 和 SpiderMonkey 等其他引擎,所以前端开发 App 框架就都不约而同将 JavaScriptCore 框架作为自己和原生的桥梁。” 这里会误导人吧,你确定App使用其他JS引擎能通过苹果审核?2020-01-1912
- 小千我们利用WKUIDelegate,自己处理H5调用的Prompt弹框事件,通过和前端约定好的参数格式,来实现js调用原生。并且支持同步和异步返回js结果。2022-04-151
- 学无止境WebViewJavascriptBridge2019-06-211
- 轻您好戴老师,一直都在听您的课程,现在我很迷茫,一直在做ios原生开发,想学新东西但是不知道该学习什么,烦请戴老师看到能给个指引,感激不尽老师2019-12-052
收起评论