上一篇文章提到了,arkts和C接口之前还有一个Napi层,这层代码最大的优势就是C/C++编码,这样,我们只需要把数据通过Json格式传递到Napi层,Napi层再定义一个结构体并赋值即可。arkts层是TypeScript代码,想定义成C的结构体是非常困难的,甚至可能实现不了,通过中间层转换其实是个省时省力的思路。
由于实现方式比较简单,这里就不给示例了,Napi层的调用代码甚至和C的Demo调用接口几乎完全一致,参数获取也比较简单,Json是一个字符串,直接读取即可,Json的转换可能会用到第三方库,个人使用Jsoncpp比较多,其它的也都差不多,个人习惯而已。
结构体部分结束后,会继续回调函数,之所以中间插入结构体,是因为回调里参数是结构体(指针)的情况非常多,这样理解起来更容易。