公共事件
更新时间:
公共事件提供了多应用间数据传递和事件交互的能力。
接口声明
{ "name": "blueos.app.event.eventManager" }
复制代码
导入模块
import event from '@blueos.app.event.eventManager' 或 const event = require('@blueos.app.event.eventManager')
复制代码
接口定义
event.publish(OBJECT)
发布公共事件
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
eventName | String | 是 | 事件名称, 公共事件保留名称被系统占用,请勿使用 |
options | Object | 否 | 事件参数 |
options 参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
params | Object | 否 | 事件参数 |
permissions | Array<String> | 否 | 订阅者的权限, 拥有权限的包才能收到发送的事件 |
示例:
event.publish({
eventName: 'myEventName',
options: {
params: { age: 10, name: 'peter' },
permissions: ['com.example.demo'],
},
})
复制代码
event.subscribe(OBJECT)
订阅公共事件
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
eventName | String | 是 | 事件名称 |
callback | Function | 是 | 事件回调 |
callback 返回值:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
params | Object | 否 | 事件参数 |
package | String | 否 | 事件推送者包名 |
返回值:
类型 | 必填 | 说明 |
---|---|---|
Number | 是 | 事件 id |
示例:
const evtId = event.subscribe({
eventName: 'myEventName',
callback: function (res) {
if (res.package === 'com.example.demo') {
console.log(res.params)
}
},
})
console.log(evtId)
复制代码
event.unsubscribe(OBJECT)
取消订阅公共事件
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
id | Number | 是 | 订阅 id |
示例:
event.unsubscribe({ id: 1 })
复制代码
系统支持的公共事件
系统公共事件名称 | 订阅者所需权限 | 说明 |
---|---|---|
usual.event.SHUTDOWN | 无 | 即将关机 |
usual.event.BATTERY_CHANGED | 无 | 电量改变,参数:level:0.0 - 1.0 之间 |
usual.event.BATTERY_LOW | 无 | 低电事件 |
usual.event.BATTERY_OKAY | 无 | 充满电事件 |
usual.event.SCREEN_OFF | 无 | 灭屏事件 |
usual.event.SCREEN_AOD | 无 | AOD 事件 |
usual.event.SCREEN_ON | 无 | 亮屏事件 |
usual.event.PACKAGE_ADDED | 无 | 新安装应用,参数:package:com.xxx.xxx |
usual.event.PACKAGE_REPLACED | 无 | 应用安装更新,参数:package:com.xxx.xxx |
usual.event.PACKAGE_REMOVED | 无 | 应用卸载,参数:package:com.xxx.xxx |
usual.event.DISCHARGING | 无 | 停止充电 |
usual.event.CHARGING | 无 | 开始充电 |
usual.event.OTA_TRANSFER | 无 | ota 开始传输 |
usual.event.OTA_INSTALL | 无 | ota 开始安装 |