[3.6.0] 原生插件 sebind 如何编写对应的 TS 接口

https://docs.cocos.com/creator/manual/zh/advanced-topics/jsb-sebind.html

  • 具体的问题或改进建议:原生插件示例文档和 sebind 使用教程文档都只示例了在 console 里调用 native 的函数,而没有示例如何在 TS 脚本里调用 native 。

我正在给一个 Native 动态库编写 Cocos Creator 的 TS 封装层接口,通过 3.6 的“原生插件”功能来实现,目前已经在 console 里跑通了 native 的函数调用。

但是目前不知道如何正确的编写 Native 对应的 TS 接口,先尝试了编写一个 .d.ts 文件,export declare class XXX ,然后在游戏场景的 TS 脚本里去使用这个类,但发现一旦写了 let xxx = new XXX() 后,原生插件导出就会报错说 “error: [build-script]Error: ‘XXX’ is not exported by file://…d.ts, imported by file://…aaa.ts”,而去掉这行 new 就能成功导出

而如果不编写 .d.ts 而是直接编写一个空实现的 .ts 即 export class XXX 里面的函数都提供一个空实现,则能正常运行,但是通过游戏脚本里的调用实际上会走到这个空实现里,然而此时在 console 执行一模一样的代码却能走到 Native 里(能触发 Xcode 断点)而不是走到空实现里

希望 sebind 或原生插件文档能示例一下如何在 TS 里调用 native 函数(以及如何在 native 调用 TS 的函数),提供一个最佳实践。另外也需要示例一下如何打包、分发包含 TS 接口文件的原生插件(用户要如何导入这个原生插件并调用插件提供的 TS 接口)

[3.6.0] 原生插件 sebind 如何编写对应的 TS 接口 重复了吧。

是的,应该是浏览器卡顿导致重复点击了发布帖子按钮,但我好像没找到删除帖子的地方 :joy: