鸿蒙公共事件【坚果派】_harmony 动态订阅公共事件,HarmonyOS鸿蒙开发基础自学

37 阅读2分钟

private subscriber = null;

private createSubscriber() { if (this.subscriber) { this.text = "subscriber already created"; } else { commonEvent.createSubscriber({ // 创建订阅者 events: ["testEvent"] // 指定订阅的事件名称 }, (err, subscriber) => { // 创建结果的回调 if (err) { this.text = "create subscriber failure" } else { this.subscriber = subscriber; // 创建订阅成功 this.text = "create subscriber success"; } }) } }

private subscribe() { if (this.subscriber) { // 根据创建的subscriber开始订阅事件 commonEvent.subscribe(this.subscriber, (err, data) => { if (err) { // 异常处理 this.text = "subscribe event failure: " + err; } else { // 接收到事件 this.text = "subscribe event success: " + JSON.stringify(data.event) + ", " + JSON.stringify(data); } }) } else { this.text = "please create subscriber"; } }

private unsubscribe() { if (this.subscriber) { commonEvent.unsubscribe(this.subscriber, (err) => { // 取消订阅事件 if (err) { this.text = "unsubscribe event failure: " + err; } else { this.subscriber = null; this.text = "unsubscribe event success: "; } }) } else { this.text = "already subscribed"; } }

private publishEvent() { commonEvent.publish("testEvent", (err) => { // 发布事件,事件名称为testEvent if (err) { // 结果回调 this.publish = "publish event error: " + err.code + ", " + err.message + ", " + err.name + ", " + err.stack; } else { this.publish = "publish event success"; } }) }

private publishEventWithData() { commonEvent.publish("testEvent", { // 发布事件,事件名称为testEvent code: 10086, // 事件携带的参数 data: "publish with data", parameters: { id: 1, content: "坚果" } // 事件携带的参数 }, (err) => { // 结果回调 if (err) { this.publish = "publish event error: " + err.code + ", " + err.message + ", " + err.name + ", " + err.stack; } else { this.publish = "publish event with data success"; } }) }

build() { Column({ space: 10 }) { Button("创建订阅者") .size({ width: 260, height: 50 }) .onClick(() => { this.createSubscriber(); }) Button("订阅公共事件") .size({ width: 260, height: 50 }) .onClick(() => { this.subscribe(); })

Button("取消订阅") .size({ width: 260, height: 50 }) .onClick(() => { this.unsubscribe(); })

Text(this.text) .size({ width: 260, height: 260 }) .fontSize(22) .backgroundColor("#dbdbdb")

Divider() .size({ width: 260, height: 5 })

Button("发布公共事件") .size({ width: 260, height: 50 }) .onClick(() => { this.publishEvent(); })

Button("发布公共事件指定公共信息") .size({ width: 260, height: 50 }) .onClick(() => { this.publishEventWithData(); })

Text(this.publish) .size({ width: 260, height: 150 }) .fontSize(22) .backgroundColor("#dbdbdb")

} .padding(10) .size({ width: "100%", height: '100%' }) } }

完毕

img img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!