创建自定义 Sparkling Method
Sparkling Method 是一个在 Android 和 iOS 上都能工作的类型化 JS 与原生桥接包。你在 TypeScript 中定义 API,使用 CLI 生成原生代码,然后在 Kotlin 和 Swift 中实现业务逻辑。
1. 创建 Method 包
使用 sparkling-method-cli 创建新的 Method 模块:
这会创建一个 sparkling-my-greeting/ 目录:
module.config.json 定义了模块元数据,代码生成和 autolink 都会使用:
2. 编写 TypeScript 函数声明
编辑 src/ 下的 .d.ts 文件来声明你的方法 API。
你只需编写函数声明和接口 —— 不需要写实现。
声明文件的关键规则:
- 使用
declare function语法(而非export function) - 最后一个参数可以是回调
(result: ResponseType) => void - 使用
@defaultJSDoc 标签指定默认值 - 字面量联合类型(如
'formal' | 'casual')在原生代码中会变为枚举常量 - 接口可以嵌套 —— 它们会生成嵌套的模型类
3. 运行代码生成
从声明文件生成所有平台代码:
这会读取 src/ 下的所有 .d.ts 文件并生成:
不应手动编辑生成的文件。 如果需要更改 API,
请修改 .d.ts 声明文件并重新运行 codegen。
4. 实现原生业务逻辑
生成的原生代码包含抽象类/桩代码,已处理好参数解析和响应序列化。 你需要继承它们并填写实际的业务逻辑。
Android(Kotlin)
创建继承生成的抽象类的具体实现:
iOS(Swift)
创建继承生成类的具体实现:
5. 构建并通过 autolink 测试
构建包
编译 TypeScript:
集成到你的 Sparkling 应用
在你的 Sparkling 应用项目中安装 Method 包:
然后运行 autolink 来自动配置原生依赖:
autolink 会自动完成:
- Android:更新
settings.gradle.kts和app/build.gradle.kts以引入 Method 模块,并生成SparklingAutolink.kt注册文件 - iOS:更新
Podfile添加 Pod 依赖,并生成SparklingAutolink.swift注册文件
运行并测试
在 Lynx/JS 代码中调用该方法:
6. 发布
当 Method 准备好发布时:
- 更新
package.json中的版本号和元数据 - 确认
files字段包含所有必要的产物:
- 发布到 npm:
使用者只需安装并执行 autolink:
最佳实践
- 命名规范:包名遵循
sparkling-<module>格式。 方法名使用<module>.<action>(如mygreeting.hello)。 - 单一数据源:始终编辑
.d.ts声明文件并重新运行 codegen —— 不要直接编辑生成的文件。 - 平台一致性:在 Android 和 iOS 上实现相同的行为。
- 错误处理:成功时返回
code: 0,错误时返回非零值, 并附带描述性的msg。 - 测试:发布前在两个平台上测试。

