自学HarmonyOS API 13记录:实现推送服务

简介: 老板突然要求我为新上线的App开发实时推送通知功能,使用HarmonyOS最新的API 13。尽管这是我首次接触HarmonyOS 13,我还是决定迎难而上。通过研究华为开发者官网的文档,我了解了PushCommon和PushService模块,并逐步实现了环境准备、推送注册、消息接收、自定义推送行为和资源清理等功能。最终,我成功开发了一个简单的推送通知Demo,不仅满足了需求,还深入掌握了HarmonyOS推送服务的架构。这次经历让我深刻体会到HarmonyOS API 13在推送服务上的改进,也感受到了现代服务架构的灵活性和高效性。希望这篇文章能帮助到更多学习HarmonyOS的开发者。

马上年底了,我刚进公司坐下,还没来得及喝一口咖啡,老板就发来一个任务:“我们新上线的App需要一个实时推送通知功能,你来负责开发吧!用HarmonyOS最新的API 13实现,顺便学一下新的推送服务架构。”

当时我有点发懵,因为推送我之前用过,但是HarmonyOS 13的我孩是第一次接触。心里想着:“能不能给点时间让我熟悉一下?”可转念一想,这是个很好的机会,可以深入学习HarmonyOS最新特性。于是,我一边默默祈祷文档能清晰易懂,一边开始了这段探索之旅。


初步研究:了解Push服务

根据老板的需求,我打开了华为开发者官网,找到了PushCommonPushService的文档。大致了解了这两个模块:

  • PushCommon提供了基本的推送消息数据结构和管理方法。
  • PushService负责实际的推送服务实现,包括消息订阅、接收和分发。

API 13增强了对推送消息处理的灵活性,提供了异步消息回调机制,更适合现代应用的高并发场景。


我的开发历程

1. 环境准备

首先,我根据文档,确保开发环境已经配置好。HarmonyOS的ArkTS框架是基础,我使用的IDE是DevEco Studio。

# 安装必要依赖
npm install @ohos/pushservice

image.gif

然后,在项目中引入推送服务模块:

import pushService from '@ohos.push.pushservice';

image.gif

2. 实现推送注册

要实现推送,第一步就是注册设备获取推送令牌。这个令牌是服务端用来标识设备的。

代码实现:

// 初始化推送服务
pushService.getPushToken({
    success: (data) => {
        console.info(`Push Token: ${data.token}`);
    },
    fail: (err) => {
        console.error(`Failed to get push token: ${JSON.stringify(err)}`);
    }
});

image.gif

这段代码会异步返回一个推送令牌,我在控制台验证了令牌的生成。

我的思考:

文档中提到的异步回调是非常重要的设计。推送服务的注册需要网络连接,异步可以避免阻塞UI线程,同时提高用户体验。

3. 实现消息接收

推送服务的核心是消息接收。当服务端发送消息到设备时,App需要能够捕获并显示消息。

代码实现:

pushService.on('receiveMessage', (message) => {
    console.info(`Received message: ${JSON.stringify(message)}`);
    // 自定义逻辑处理消息
    if (message.type === 'notification') {
        showNotification(message);
    }
});
function showNotification(message: any) {
    console.info(`Notification Title: ${message.title}`);
    console.info(`Notification Content: ${message.content}`);
}

image.gif

我的思考:

我发现消息接收是基于事件回调的模式,这种设计让我联想到Node.js的事件监听机制,非常简洁灵活。

4. 自定义推送行为

在开发过程中,老板要求我们自定义推送的行为,比如分类存储消息或根据不同类型消息触发不同操作。

代码实现:

pushService.on('receiveMessage', (message) => {
    switch (message.category) {
        case 'alert':
            handleAlert(message);
            break;
        case 'update':
            handleUpdate(message);
            break;
        default:
            console.warn(`Unhandled message category: ${message.category}`);
    }
});
function handleAlert(message: any) {
    console.info(`Alert: ${message.content}`);
}
function handleUpdate(message: any) {
    console.info(`Update Info: ${message.content}`);
}

image.gif

通过分类处理,我们实现了对不同消息类型的精准控制。

5. 清理资源

推送服务占用资源,当用户注销或退出应用时,需要释放相关资源以提高系统性能。

代码实现:

pushService.unsubscribe({
    success: () => {
        console.info('Successfully unsubscribed from push service.');
    },
    fail: (err) => {
        console.error(`Failed to unsubscribe: ${JSON.stringify(err)}`);
    }
});

image.gif

我的总结:

及时释放资源不仅是良好的开发习惯,也是提升系统性能的重要手段。


最终成果:实时推送Demo

经过一天的开发和测试,我成功实现了一个简单的推送通知功能,并根据不同消息类型展示不同的处理逻辑。效果如下:

  1. 收到“警报”消息时,显示警告通知。
  2. 收到“更新”消息时,触发更新逻辑。

推送服务Demo不仅满足了老板的要求,还让我对HarmonyOS推送服务的架构有了更深的理解。

结语:开发感悟

通过这次任务,我深刻体会到HarmonyOS API 13在推送服务上的改进。文档虽然详细,但真正开发时仍需要多试、多思考。

推送服务的异步回调、分类管理和资源清理让我感受到现代服务架构的灵活性和高效性。未来,我计划进一步研究如何优化推送服务性能,并探索更多HarmonyOS的高级特性。

希望这篇文章能帮助到和我一样学习HarmonyOS的开发者们!

目录
相关文章
|
29天前
|
缓存 API 数据安全/隐私保护
自学记录:学习HarmonyOS Location Kit构建智能定位服务
作为一名对新技术充满好奇心的开发者,我选择了HarmonyOS Next 5.0.1(API 13)作为挑战对象,深入研究其强大的定位服务API——Location Kit。从权限管理、获取当前位置、逆地理编码到地理围栏,最终成功开发了一款智能定位应用。本文将结合代码和开发过程,详细讲解如何实现这些功能,并分享遇到的挫折与兴奋时刻。希望通过我的经验,能帮助其他开发者快速上手HarmonyOS开发,共同探索更多可能性。
116 5
|
1月前
|
人工智能 搜索推荐 API
自学记录鸿蒙API 13:实现人脸比对Core Vision Face Comparator
在完成文本识别和人脸检测项目后,我深入学习了HarmonyOS Next API 13中的Core Vision Face Comparator API,开发了一个简单的人脸比对工具。该API能进行高精度人脸比对并给出相似度评分,应用场景广泛,如照片分类、身份认证、个性化服务等。通过初始化服务、加载图片、实现比对功能和构建用户界面,最终实现了可靠的人脸比对功能。未来计划将此技术应用于更复杂的场景,如照片管理和个性化服务,并探索与其他AI能力的结合。如果你也对人脸比对感兴趣,不妨从简单的比对功能开始,逐步实现自己的创意!
119 61
|
1月前
|
编解码 人工智能 缓存
自学记录鸿蒙API 13:实现多目标识别Object Detection
多目标识别技术广泛应用于动物识别、智能相册分类和工业检测等领域。本文通过学习HarmonyOS的Object Detection API(API 13),详细介绍了如何实现一个多目标识别应用,涵盖从项目初始化、核心功能实现到用户界面设计的全过程。重点探讨了目标类别识别、边界框生成、高精度置信度等关键功能,并分享了性能优化与功能扩展的经验。最后,作者总结了学习心得,并展望了未来结合语音助手等创新应用的可能性。如果你对多目标识别感兴趣,不妨从基础功能开始,逐步实现自己的创意。
209 60
|
29天前
|
API 开发者 UED
自学记录鸿蒙API 13:PreviewKit从文件预览到应用开发
通过学习API 13,我深入研究了**PreviewKit(文件预览服务)**。该模块支持快速预览多种文件类型(文本、图片、视频、音频、PDF等),为文件管理类应用提供系统级支持。本文分享了从搭建开发环境到实现单文件和多文件预览的全过程,并介绍了如何构建一个实用的文件预览助手应用。通过实践,不仅掌握了技术细节,还提升了个人开发能力。希望这些经验能为其他开发者带来启发与帮助。
53 10
自学记录鸿蒙API 13:PreviewKit从文件预览到应用开发
|
1月前
|
人工智能 自然语言处理 文字识别
自学记录鸿蒙API 13:实现智能文本识别Core Vision Text Recognition
在完成语音助手项目后,我尝试了HarmonyOS Next API 13中的Core Vision Text Recognition API,体验其强大的文本识别功能。该API支持多语言高精度识别,能快速将图像中的文本提取为结构化信息,适用于文档扫描、票据管理和实时翻译等场景。通过权限配置、初始化服务、实现识别功能和构建用户界面,我完成了文本识别应用的开发,并探索了性能优化与功能扩展。鸿蒙生态的强大支持让开发者能更便捷地实现复杂功能。未来计划将此技术应用于实际项目,如票据管理或实时翻译工具。如果你也对文本识别感兴趣,不妨一起探索!
84 11
|
1月前
|
人工智能 自然语言处理 API
自学记录HarmonyOS Next的HMS AI API 13:语音合成与语音识别
在完成图像处理项目后,我计划研究HarmonyOS Next API 13中的AI语音技术,包括HMS AI Text-to-Speech和Speech Recognizer。这些API提供了强大的语音合成与识别功能,支持多语言、自定义语速和音调。通过这些API,我将开发一个支持语音输入与输出的“语音助手”原型应用,实现从语音指令解析到语音响应的完整流程。此项目不仅提高了应用的交互性,也为开发者提供了广阔的创新空间。未来,语音技术将在无障碍应用和智慧城市等领域展现巨大潜力。如果你也对语音技术感兴趣,不妨一起探索这个充满无限可能的领域。 (238字符)
101 11
|
1月前
|
人工智能 监控 安全
自学记录鸿蒙 API 13:骨骼点检测应用Core Vision Skeleton Detection
骨骼点检测技术能够从图片中识别出人体的关键骨骼点位置,如头部、肩部、手肘等,广泛应用于运动健身指导、游戏交互、医疗辅助、安全监控等领域。我决定深入学习HarmonyOS Next API 13中的Skeleton Detection API,并开发一个简单的骨骼点检测应用。通过理解API核心功能、项目初始化与配置、实现检测功能、构建用户界面,以及性能优化和功能扩展,逐步实现这一技术的应用。未来计划将其应用于健身指导和智能监控领域,探索与其他AI能力的结合,开发更智能的解决方案。如果你也对骨骼点检测感兴趣,不妨一起进步!
166 9
|
1月前
|
存储 API 计算机视觉
自学记录HarmonyOS Next Image API 13:图像处理与传输的开发实践
在完成数字版权管理(DRM)项目后,我决定挑战HarmonyOS Next的图像处理功能,学习Image API和SendableImage API。这两个API支持图像加载、编辑、存储及跨设备发送共享。我计划开发一个简单的图像编辑与发送工具,实现图像裁剪、缩放及跨设备共享功能。通过研究,我深刻体会到HarmonyOS的强大设计,未来这些功能可应用于照片编辑、媒体共享等场景。如果你对图像处理感兴趣,不妨一起探索更多高级特性,共同进步。
77 11
|
1月前
|
人工智能 监控 安全
自学记录鸿蒙 API 13:实现人脸检测 Core Vision Face Detector
本文介绍了基于HarmonyOS Next API 13中的Core Vision Face Detector API实现人脸检测小应用的过程。通过研究发现,该API不仅支持人脸检测框的定位,还能识别关键点(如眼睛、鼻子和嘴角位置)及人脸姿态信息。文章详细记录了开发历程,包括项目初始化、权限配置、图像加载与人脸检测、用户界面设计,以及性能优化和功能扩展的思路。应用场景涵盖身份验证、照片管理和实时交互等。未来计划将技术应用于智能照片管理工具,提供更高效的照片分类体验。欢迎对人脸检测技术感兴趣的读者一起探讨和进步。
121 7
|
29天前
|
人工智能 数据可视化 API
自学记录鸿蒙API 13:Calendar Kit日历功能从学习到实践
本文介绍了使用HarmonyOS的Calendar Kit开发日程管理应用的过程。通过API 13版本,不仅实现了创建、查询、更新和删除日程等基础功能,还深入探索了权限请求、日历配置、事件添加及查询筛选等功能。实战项目中,开发了一个智能日程管理工具,具备可视化管理、模糊查询和智能提醒等特性。最终,作者总结了模块化开发的优势,并展望了未来加入语音助手和AI推荐功能的计划。
163 1