Skip to content

JSB

JSB(JavaScript Bridge)是插件运行时的桥接核心对象:类定义、插件入口、日志与包内脚本加载都通过它完成。

JSB 是全局对象,通常不以“实例化”的方式使用。

定义一个可被运行时识别并回调的类,所有插件的入口

defineClass(declaration: string, instanceMembers: object, classMembers?: object): any

Parameters:

NameTypeDescription
declarationstring类声明,例如 'MyAddon : JSExtension'
instanceMembersobject实例方法与属性的集合。在此对象中定义的方法/属性在实例上调用(如 sceneWillConnectnotebookWillOpenqueryAddonCommandStatus 等)。
classMembersobject?类方法与属性的集合。在此对象中定义的方法在上调用(如 addonDidConnect)。

Return Value:

  • any: 类构造器。

插件入口函数。MarginNote 加载插件时调用,你必须实现并返回插件类。

newAddon(mainPath: string): any

Parameters:

NameTypeDescription
mainPathstring插件包根目录路径。

Return Value:

  • any: 必须返回由 defineClass 创建的类(构造器)。注意:是类本身,不是实例。

向系统控制台输出日志,类似 console.log。在MN4已不可用。MN3中使用参考log,error

log(format: string, ...args: any[]): void

Parameters:

NameTypeDescription
formatstring格式化字符串,支持 %@%d 等 Objective-C 格式。
...argsany[]对应格式化字符串的参数。

加载插件包内其他 JS 文件。

require(name: string): void

Parameters:

NameTypeDescription
namestring插件包内 JS 文件路径/文件名。

Note: 无模块作用域,所有文件共享全局作用域;推荐使用 Webpack 等打包工具。

  • 插件主类必须通过 JSB.defineClass('MyAddon : JSExtension', instanceMembers, classMembers) 定义,并在全局实现 JSB.newAddon = function(mainPath) { return MyAddon; }(或等价形式)。
  • 参见 JSExtension 了解生命周期方法,快速开始 了解完整示例。
头文件 API 清单

正在加载…

协议:,来源: