1、桌面应用中的浏览器,浏览器的发展趋势,HTML5,现状,基于,HTML5,的,web,开发会受到各种平台,(,PC,、,mobile,)、,各种浏览器的各种限制,我们需要各种修补、兼容,甚至有所放弃,严重不爽!,换个思路,怎么办?!,明天是美好的,主动出击,目录,heX,是什么,如何实现,怎么用,现状和展望,heX,是什么,heX,可以用来干什么,web,开发,异步,I/O,编程,heX,有什么优势,像在浏览器中一样,设计和调试程序的,UI,像在,Node.JS,中一样,管理和扩展程序的模块,支持,Node.JS,第三方,C+,扩展,像编写传统桌面应用一样,利用丰富的,API,和事件操作桌面
2、窗体,可以移除,Node.JS,仅保留纯净的浏览器环境,以,web,容器的形式嵌入到桌面工程中,支持,Chromium,的单进程与多进程模型,heX,的发行包,包含,Node.JS,不包含,Node.JS,源代码,最终用户二进制包,Web,前端调试二进制包,Module,二进制开发包,heX,不适合做什么,控制台程序,文件体积极小的应用,杀毒软件、安全卫士、驱动程序,heX,如何实现,为什么选择,轮子,CEF,已经有许多成功应用案例,CEF1,与,CEF3,的抉择:,CEF1,CEF3,封装接口,WebKit API,Content API,进程模型,仅单进程,单进程、多进程,远程调试,不支持
3、支持,heX,如何实现,为什么选择,扩展浏览器的客户端功能,需要考虑:,封装程度,扩展性,跨平台,heX,如何实现,原理,V8,引擎融合,heX,如何实现,原理,context,融合,InitContextIfNeeded,Chromium,Node.JS,Page context,New context,Start,Load,context,heX,如何实现,原理,消息循环与,事件循环融合,heX,如何实现,原理,安全性考虑,锁定工作目录,Node.JS,模块黑白名单,禁用,Node.JS,第三方,C+,扩展,heX,怎么用,主要流程,下载二进制发行包,netease-youdao.git
4、hub.io/hex/,配置,manifest.json,编写,web,前端代码,编写,Node.JS,代码,打包或者生成安装程序,heX,怎么用,manifest,heX,的现状,v27.0,v0.11.0,应用案例:,有道词典,6.0 beta,版,heX,的现状,应用案例,heX,的现状,应用案例,heX,的展望,建立,HPM,(,heX Packaged Modules,)社区,方便管理和分享扩展;,OS X,(已完成一部分)和,Linux,平台版本,,Android,;,针对以,web,容器形式存在的,heX,提供一套合理的,C+,与,JavaScript,交互通信的方式,并支持同步与异步;,提供全自动打包工具,可以直接生成安装程序(,web,前端代码加密,主程序信息等);,不断的升级,保持最新。,netease-youdao.github.io/hex/,谢谢!,Q&A,