NWJS Addon入坑后又爬出的故事:Addon异步回调JavaScript

本文分享了使用NWJS开发桌面应用的经历,并重点讨论了如何利用Addon插件实现硬件控制功能,包括C++异步回调JavaScript的具体实践及解决过程中遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前段探针NWJS走了一些弯路,但最终也算是达到了预研目的。

本想利用nw js开发一个桌面应用,但是这个应用又需要比较多的硬件控制能力,这就要利用Addon插件来保证nw与前后端Front-End双向交互通畅。

nwjs通过JavaScript同步调用c++的过程,利用nodejs官网docs介绍的例子就可以保证能够使用;但,对于c++异步回调JavaScript,nodejs官网docs上没有明显例子,后来才发现在Github上Nodejs源码中有异步回调的例子,路径在:"node/test/addons/async-hello-world" 。

网上大多数搜到nodejs C++异步回调JavaScript的例子都比较老旧,这也是这篇博客的主要目的。找异步回调例子可以在源码中直接找,不必费周折看网上一些过时的信息,所以,我这里也不列出任何的代码和例子,只指明地方和路径。

虽然用正向和反向调用的例子可以集成出来这个AddOn的骨架,后面走的最大一段弯路是在编译的时候。

因为是一步一步尝试的关系,首先保证了在nodejs的情况下能够编译使用,但后来按照NWJS官网编译说明,虽然可以编译过Addon,但在异步回调的关键步骤persistent<function>.reset赋值时,nwjs却崩溃。试了很多野路子,也开了issue咨询nwjs的维护开发人员,后来才逐渐发现,虽同是编译相同代码的AddOn,但在nodejs和nwjs编译Addon时用到的头文件和依赖链接node.Lib等是大大不同的,nwjs是通过比较大量的hack chromium V8和nodejs,所以,链接库的不同是必然,在nodejs下能使用AddOn,但在nwjs下会崩溃,算是入坑后爬了坑出来。

补充一下:《Linker And Loader》这本书不错,会明白编码之后的程序故事。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值