iOS开发高手课
戴铭
前滴滴出行技术专家
立即订阅
11453 人已学习
课程目录
已完结 46 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 锚定一个点,然后在这个点上深耕
免费
基础篇 (20讲)
01 | 建立你自己的iOS开发知识体系
02 | App 启动速度怎么做优化与监控?
03 | Auto Layout 是怎么进行自动布局的,性能如何?
04 | 项目大了人员多了,架构怎么设计更合理?
05 | 链接器:符号是怎么绑定到地址上的?
06 | App 如何通过注入动态库的方式实现极速编译调试?
07 | Clang、Infer 和 OCLint ,我们应该使用谁来做静态分析?
08 | 如何利用 Clang 为 App 提质?
09 | 无侵入的埋点方案如何实现?
10 | 包大小:如何从资源和代码层面实现全方位瘦身?
11 | 热点问题答疑(一):基础模块问题答疑
12 | iOS 崩溃千奇百怪,如何全面监控?
13 | 如何利用 RunLoop 原理去监控卡顿?
14 | 临近 OOM,如何获取详细内存分配信息,分析内存问题?
15 | 日志监控:怎样获取 App 中的全量日志?
16 | 性能监控:衡量 App 质量的那把尺
17 | 远超你想象的多线程的那些坑
18 | 怎么减少 App 电量消耗?
19 | 热点问题答疑(二):基础模块问题答疑
20 | iOS开发的最佳学习路径是什么?
应用开发篇 (12讲)
21 | 除了 Cocoa,iOS还可以用哪些 GUI 框架开发?
22 | 细说 iOS 响应式框架变迁,哪些思想可以为我所用?
23 | 如何构造酷炫的物理效果和过场动画效果?
24 | A/B 测试:验证决策效果的利器
25 | 怎样构建底层的发布和订阅事件总线?
26 | 如何提高 JSON 解析的性能?
27 | 如何用 Flexbox 思路开发?跟自动布局比,Flexbox 好在哪?
28 | 怎么应对各种富文本表现需求?
29 | 如何在 iOS 中进行面向测试驱动开发和面向行为驱动开发?
30 | 如何制定一套适合自己团队的 iOS 编码规范?
31 | iOS 开发学习资料和书单推荐
32 | 热点问题答疑(三)
原理篇 (6讲)
33 | iOS 系统内核 XNU:App 如何加载?
34 | iOS 黑魔法 Runtime Method Swizzling 背后的原理
35 | libffi:动态调用和定义 C 函数
36 | iOS 是怎么管理内存的?
37 | 如何编写 Clang 插件?
38 | 热点问题答疑(四)
原生与前端共舞 (5讲)
39 | 打通前端与原生的桥梁:JavaScriptCore 能干哪些事情?
40 | React Native、Flutter 等,这些跨端方案怎么选?
41 | 原生布局转到前端布局,开发思路有哪些转变?
42 | iOS原生、大前端和Flutter分别是怎么渲染的?
43 | 剖析使 App 具有动态化和热更新能力的方案
用户故事 (1讲)
用户故事 | 我是如何学习这个专栏的?
结束语 (1讲)
结束语 | 慢几步,深几度
iOS开发高手课
登录|注册

39 | 打通前端与原生的桥梁:JavaScriptCore 能干哪些事情?

戴铭 2019-06-11
你好,我是戴铭。
今天这篇文章是原生与前端共舞模块的第一篇,我来跟你聊聊前端和原生之间的桥梁 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/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《iOS开发高手课》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(12)

  • Ansion
    课后作业:
    可以借助JSContext与JSValue的类型转换和OC的Runtime消息转发机制实现动态调用,巧妙避开Export协议;
    可以参考JSPatch的实现原理
    2019-06-11
    1
    10
  • WKWebView用不到JavaScripCore吧…毕竟取不到JSContext…
    2019-06-11
    1
    4
  • kevin
    这里讲的方式还是基于uiwebview hybrid开发,wkwebview 还是很大的不同吧,现在用webviewjavascriptbrigde多一些。
    2019-06-11
    4
  • 戴老师你好,请问后面会讲解通过WKWebview来构建hybrid app吗?目前正在用vue.js写前端,用WKWebview作web容器,不知道业界是怎么打造自己的hybrid app的,还请给些指导,谢谢。
    2019-06-14
    1
    3
  • Xqqq0
    不知道大神会不会讲NSURLProtocol的实战,希望会🙏🙏🙏
    2019-06-11
    3
  • Sunny
    老师,你在文中说“JSContext 会调用 evaluateScript 方法,返回 JSValue 对象。”,应该是生成JSValue 对象,而不是返回吧?
    2019-10-23
    2
  • Eric
    您好戴老师,一直都在听您的课程,现在我很迷茫,一直在做ios原生开发,想学新东西但是不知道该学习什么,烦请戴老师看到能给个指引,感激不尽老师
    2019-12-05
  • Sunny
    老师,你在文中说“原生线程可以将类方法和属性提供给 JavaScriptCore 使用,JavaScriptCore 可以将 JSValue 提供给原生线程使用。”,为什么可以将类方法提供给 JavaScriptCore 使用?对象方法不行么?
    2019-10-23
  • Sunny
    老师,您在文中多次提到了“字节码”,它具体是个什么东西呀?
    2019-10-23
  • dao
    老师,你说“前端的优势在于快速编写 UI,原生的优势在于对平台特性的天然支持”,这有点抽象,有没有充分结合这两者优势的案例参考一下。谢谢!
    2019-08-11
  • 学无止境
    WebViewJavascriptBridge
    2019-06-21
  • 我系哆啦
    沙发?
    2019-06-11
收起评论
12
返回
顶部