自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数HarmonyOS鸿蒙开发工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年HarmonyOS鸿蒙开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上HarmonyOS鸿蒙开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注鸿蒙获取)
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
console.info(‘Succeeded in creating subscriber.’);
subscriber = data;
// 订阅公共事件回调
})
// 订阅公共事件回调
if (subscriber !== null) {
commonEventManager.subscribe(subscriber, (err: Base.BusinessError, data: commonEventManager.CommonEventData) => {
if (err) {
console.error(Failed to subscribe common event. Code is ${err.code}, message is ${err.message}
);
return;
}
})
} else {
console.error(Need create subscriber
);
}
#### 🦋2.3 静态订阅公共事件(仅对系统应用开放)
1、声明一个静态订阅者,首先需要在工程中新建一个ExtensionAbility, 该ExtensionAbility从StaticSubscriberExtensionAbility派生,其代码实现如下:
import StaticSubscriberExtensionAbility from ‘@ohos.application.StaticSubscriberExtensionAbility’
export default class StaticSubscriber extends StaticSubscriberExtensionAbility {
onReceiveEvent(event) {
console.log(‘onReceiveEvent, event:’ + event.event);
}
}
2、配置文件
{
“module”: {
…
“extensionAbilities”: [
{
“name”: “StaticSubscriber”,
“srcEntrance”: “./ets/StaticSubscriber/StaticSubscriber.ts”,
“description”: “
s
t
r
i
n
g
:
S
t
a
t
i
c
S
u
b
s
c
r
i
b
e
r
d
e
s
c
"
,
"
i
c
o
n
"
:
"
string:StaticSubscriber_desc", "icon": "
string:StaticSubscriberdesc","icon":"media:icon”,
“label”: “KaTeX parse error: Expected '}', got 'EOF' at end of input: … "resource": "profile:subscribe”
}
]
}
]
…
}
}
| 属性名称 | 属性值 |
| --- | --- |
| srcEntrance | 表示ExtensionAbility的入口文件路径,即步骤2中声明的静态订阅者所在的文件路径 |
| type | 表示ExtensionAbility的类型,对于静态订阅者需要声明为“staticSubscriber” |
| metadata | 表示ExtensionAbility的二级配置文件信息。由于不同的ExtensionAbility类型其配置信息不尽相同,因此需要使用不同的config文件表示其具体配置信息 |
| –name | 表示ExtensionAbility的类型名称,对于静态订阅类型,name必须声明为“ohos.extension.staticSubscriber”,否则无法识别为静态订阅者 |
| –resource | 字段表示ExtensionAbility的配置信息路径,由开发者自行定义,在本例中表示路径为“resources/base/profile/subscribe.json" |
metadata指向的二级配置文件的通常形式如下:
{
“commonEvents”: [
{
“name”: “xxx”,
“permission”: “xxx”,
“events”:[
“xxx”
]
}
]
}
| 字段 | 说明 |
| --- | --- |
| name | 静态订阅ExtensionAbility的名称,需要和module.json5中声明的ExtensionAbility的name一致 |
| permission | 订阅者要求的发布者需要具备的权限,对于发布了目标事件但不具备permission中声明的权限的发布者将被视为非法事件不予发布 |
| events | 订阅的目标事件列表 |
修改设备系统配置文件 /etc/static\_subscriber\_config.json,将静态订阅应用者的包名添加至该json文件中即可
{
“xxx”,
“ohos.extension.staticSubscriber”,
“xxx”
}
#### 🦋2.3 取消动态订阅公共事件
import commonEvent from ‘@ohos.commonEventManager’;
// subscriber为订阅事件时创建的订阅者对象
if (subscriber !== null) {
commonEvent.unsubscribe(subscriber, (err) => {
if (err) {
console.error([CommonEvent] UnsubscribeCallBack err=${JSON.stringify(err)}
)
} else {
console.info([CommonEvent] Unsubscribe
)
subscriber = null
}
})
}
### 3.发布
在发布订阅模型中,发布是指将消息发送到主题中。发布者通常不需要关心谁订阅了它们的消息,也不需要知道是否有订阅者。发布者只需要将消息发送到主题,然后该主题负责将消息传递给所有订阅者。
发布订阅模型可以用于实现异步通信,其中发布者和订阅者可以在互不干扰的情况下进行工作。发布者可以继续发布消息,而订阅者可以在需要时接收消息。
#### 🦋3.1 发布不携带信息的公共事件
import commonEvent from ‘@ohos.commonEventManager’;
// 发布公共事件
commonEvent.publish(“usual.event.SCREEN_OFF”, (err) => {
if (err) {
console.error([CommonEvent] PublishCallBack err=${JSON.stringify(err)}
);
} else {
console.info([CommonEvent] Publish success
);
}
})
#### 🦋3.2 发布携带信息的公共事件
import commonEvent from ‘@ohos.commonEventManager’;
// 公共事件相关信息
let options = {
code: 1, // 公共事件的初始代码
data: “initial data”, // 公共事件的初始数据
}
// 发布公共事件
commonEvent.publish(“usual.event.SCREEN_OFF”, options, (err) => {
if (err) {
console.error(‘[CommonEvent] PublishCallBack err=’ + JSON.stringify(err));
} else {
console.info(‘[CommonEvent] Publish success’)
}
})
### 🚀写在最后
* 如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
* 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
* 关注小编,同时可以期待后续文章ing🚀,不定期分享原创知识。
* 想要获取更多完整鸿蒙最新VIP学习资料,请点击→[全套鸿蒙HarmonyOS学习资料]( )
* 或者关注小编后私信回复【666】也可获取资料哦~~
ess')
}
})
🚀写在最后
- 如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
- 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
- 关注小编,同时可以期待后续文章ing🚀,不定期分享原创知识。
- 想要获取更多完整鸿蒙最新VIP学习资料,请点击→全套鸿蒙HarmonyOS学习资料
- 或者关注小编后私信回复【666】也可获取资料哦~~