跳到主要内容

在白鹭引擎中调用第三方 JavaScript 代码

在游戏开发过程中,往往需要介入一些第三方编写的 JavaScript 库。这些库一般会有三种来源:

  1. 游戏会运行在第三方提供的特殊容器中,容器已注入了特定的 JavaScript 接口。典型案例:微信小游戏平台接口
  2. 第三方提供了 JavaScript 代码,需要将这部分代码打包进游戏项目中。典型案例:渠道接入SDK
  3. 第三方将库提交到了 npm 包管理器中。典型案例:axios

针对这三种情况,白鹭分别提供了三种解决方案

  1. 编写 .d.ts 文件
  2. 编写 Egret Library
  3. 打包 npm library

我们将对这三种方式分别进行介绍

编写 .d.ts 文件

由于第三方 JavaScript 代码与您游戏的 TypeScript 逻辑绝大多数情况下运行在同一个 JavaScript容器上下文中,所以您可以直接在 TypeScript 代码中调用第三方SDK的JavaScript 接口即可。只需要额外声明一个 .d.ts 文件,确保 TypeScirpt 编译器不会因此抛出异常即可。

以微信小游戏为例,您只需编写一个名为 wx.d.ts 的文件,如下即可:

declare  var wx:  any;

由于上述 wx 这个变量类型为 any ,开发者就可以在任意逻辑中直接调用 wx 中的任意方法,如果您希望进一步得到更友好的代码提示,您需要修改 wx.d.ts 文件,给出更明确的类型声明,具体的类型声明方式可以参见添加.d.ts 这篇文档

编写 Egret Library

TODO

打包 npm library

TODO