3. 仓颉 CEF 库封装
文章目录
- 1. capi 使用说明
- 2. Cangjie CEF
- 2. 1实现目标
- 3. 实现示例
1. capi 使用说明
根据上一节 https://blog.csdn.net/qq_51355375/article/details/147880718?spm=1011.2415.3001.5331 所述, cefcapi 是libcef 共享库导出一个 C API, 而以源代码形式分发的 libcef_dll_wrapper 项目将这个导出的 C API 包装在 C++ API 中就成为了 cef 的C++ API , 及常用的开发方式。 既然libcef_dll_wrapper 是基于capi 的封装, 那是不是可以直接使用capi 和c语言来进行cef的开发呢,经过验证测试是没问题的。
但是基于capi 使用, 需要手动管理引用计数,资源及内存要手动管理,开发项目比较大时相关管理比较麻烦。
2. Cangjie CEF
- 因仓颉可以通过ffi 来调用c语言, 和c语言的操作也支持的比较好。所以是否可以通过仓颉和cefcapi 进行结合来实现在从仓颉端调用cef的能力。
- 因为仓颉支持和c的函数及结构体映射,所以接口采用cefcapi和部分结构封装的方式实现, 保留cefcapi在仓颉端的结构映射,从而可以保留可以在仓颉端直接使用和封装cef的能力, 而直接在c端封装部分结构和接口,可以简化开发,同时提供一个开箱即用的环境和处理一些在仓颉端无法完成的操作,如c的宏调用等。
2. 1实现目标
Cangjie CEF最终目的是希望能实现一个类似tauri 和 electron 的混合桌面开发框架
3. 实现示例
参考:
https://gitcode.com/Cangjie-SIG/cj-cef
或
https://gitcode.com/CodingBinary/zhinu_ui#js-%E8%B0%83%E7%94%A8%E4%BB%93%E9%A2%89