事件机制

QAP-SDK 支持 3 种类型的事件机制: 页面级别事件 应用级别事件 全局级别事件

  • 页面级别事件 —— 只能在当前页面被监听和触发。
    • 事件名的前缀为 page.。如:page.balabala
  • 应用级别事件 —— 能在整个应用插件的任一页面被监听和触发。
    • 事件名的前缀为 app.。如:app.balabala
  • 全局级别事件 —— 能在千牛内的任一页面被监听,但是应用插件不能触发此类型事件。
    • 事件名的前缀为 global.。如:global.balabala

注意: 如果事件不含上述的前缀,则默认事件为页面级别事件,前缀为 page.

API 调用

QN.on(ev, options)

注册事件

API 调用入参

名称 类型 是否可选 含义
ev String 事件名称
options Object Function 选项 或 事件回调函数
options.success Function optional 调用成功的回调函数
options.error Function optional 调用失败的回调函数
options.notify Function optional 事件触发的回调函数

API 响应结果

名称 类型 是否必须返回 含义
result Object 响应对象
result.errorCode Number 错误码
result.errorMsg String 错误信息

事件回调入参

名称 类型 是否必须 含义
data Any optional 事件触发时传递的数据

调用示例

// 注册事件时只有事件触发回调函数
QN.on('event_balabala', (data) => {
    console.log(data);
});
// 注册事件时包含 成功、失败、触发 3 个回调函数
QN.on('event_balabala', {
    success(result) {
        console.log(result);
    },
    error(error) {
        console.log(error);
    },
    notify(data) {
        console.log(data);
    }
});

QN.off(ev, options)

注销事件

API 调用入参

名称 类型 是否可选 含义
ev String 事件名称
options Object Function 选项 或 事件回调函数
options.success Function optional 调用成功的回调函数
options.error Function optional 调用失败的回调函数
options.notify Function optional 事件触发的回调函数

API 响应结果

名称 类型 是否必须返回 含义
result Object 响应对象
result.errorCode Number 错误码
result.errorMsg String 错误信息

调用示例

// 注销事件时只有事件触发回调函数。此时只会注销该回调函数,其他的事件回调函数不受影响。
QN.off('event_balabala', (data) => {
    console.log(data);
});
// 注销事件时包含 成功、失败、触发 3 个回调函数。此时只会从回调函数列表中删除 `notify` 函数,其他的事件回调函数不受影响。
// 注销成功后,会回调 `success` 函数
// 注销失败后,会回调 `error`   函数
QN.off('event_balabala', {
    success(result) {
        console.log(result);
    },
    error(error) {
        console.log(error);
    },
    notify(data) {
        console.log(data);
    }
});
// 注销事件时不带事件回调函数,此时会注销所有该事件下的回到函数。
QN.off('event_balabala');
// 注销事件时 `options` 中不含 `notify` 事件回调函数,此时会注销所有该事件下的回到函数。
// 注销成功后,会回调 `success` 函数
// 注销失败后,会回调 `error`   函数
QN.off('event_balabala', {
    success(result) {
        console.log(result);
    },
    error(error) {
        console.log(error);
    },
});

QN.emit(ev, data, options)

触发事件

API 调用入参

名称 类型 是否可选 含义
ev String 事件名称
data Any Function Object optional 数据 或 选项, 如果是 Function 或 选项 Object,等同于不传递数据,此时该参数和第3个参数含义相同
options Function Object optional 选项 或 成功回调,如果是 Function,等同于 options.success
options.success Function optional 调用成功的回调函数
options.error Function optional 调用失败的回调函数

API 响应结果

名称 类型 是否必须返回 含义
result Object 响应对象
result.errorCode Number 错误码
result.errorMsg String 错误信息

调用示例

let data = {msg: 'msg from event_balabala'};
// 仅触发事件
QN.emit('event_balabala');

// 触发事件,并发送数据
QN.emit('event_balabala', data);

// 触发事件,并希望得知触发是否成功
QN.emit('event_balabala', function success(result) {
    console.log(result);
}};
QN.emit('event_balabala', {
    success(result) {
        console.log(result);
    },
    error(error) {
        console.log(error);
    },
});
// 触发事件,发送数据,并希望得知触发是否成功
QN.emit('event_balabala', data, function success(result) {
    console.log(result);
});
QN.emit('event_balabala', data, {
    success(result) {
        console.log(result);
    },
    error(error) {
        console.log(error);
    },
});