HarmonyOS鸿蒙Next入门开发教程:一文带你详解工具箱元服务的开发流程
HarmonyOS鸿蒙Next入门开发教程:一文带你详解工具箱元服务的开发流程 鸿蒙入门开发教程:一文带你详解工具箱元服务的开发流程
今天我们就来做一个实现自己的一个小工具元服务开发
一,基本概念
- 元服务(原名原子化服务)是一种基于HarmonyOS API的全新服务提供方式,以HarmonyOS万能卡片等多种呈现形态,向用户提供更轻量化的服务。具有即用即走、信息外显、服务直达的特性。
- 万能卡片(简称卡片)是一种界面展示形式,可以将应用的重要信息或操作前置到卡片,以达到服务直达、减少体验层级的目的。
- ArkUI框架是一套构建分布式应用界面的声明式UI开发框架,其使用极简的UI信息语法、丰富的UI组件、以及实时界面预览工具,帮助开发者提升HarmonyOS应用界面开发效率。
- AppGallery Connect(简称AGC)致力于为应用的创意、开发、分发、运营、经营各环节提供一站式服务,构建全场景智慧化的应用生态体验。
- 端云一体化是为丰富HarmonyOS对云端开发的支持、实现HarmonyOS生态端云联动,DevEco Studio推出了云开发功能,开发者在创建工程时选择云开发模板,即可在DevEco Studio内同时完成HarmonyOS应用/服务的端侧与云侧开发。
二,主要功能
本次开发的实用小工具主要功能有:
- 油价查询,点击城市列表之后,就可以查看当前城市的油价,包括92,95,98,柴油等。
- 垃圾分类查询,输入物品名称就可以查看垃圾的详细分类,而不再害怕垃圾分类出错。
- 当前定位查看,我们可以很方便的知道自己当前的位置信息。
- 提供1x2,2x2,2x4,4x4卡片。
API版本:API9
应用包名:com.jianguo.utilitybox
三,项目初始化
- 当前未打开任何工程,单击DevEco Studio欢迎页中“Create Project”创建新工程。
- 当前已打开工程,单击菜单栏“File > New > Create Project”创建新工程。
首先创建项目,选择原子化服务,第四个模版端云一体化模版
点击下一步
这个时候我们需要为工程关联云开发所需的资源,即在DevEco Studio中选择您的华为开发者账号加入的开发者团队,将该团队在AGC的同包名应用关联到当前工程。
然后我们点击登陆就好
这个时候会来到下面的授权页面,我们点击允许就可以。
单击“AppGallery Connect”打开AGC应用创建向导,填写应用信息,单击“确认”按钮创建应用
我们点击箭头这儿就会跳转到我们的agc页面。
这个时候我们选择创建项目,然后再创建应用。我之前已经有项目了。所以我们直接在项目里创建应用就可以
比如我这里就选择
下面这个就可以
然后就会跳转到设置位置处理页面
我们点击下一步就会到下面的添加应用界面,然后我们只需要填写应用名称就可以,其他的都会默认,如果默认失败的话,我们就设置应用包名:com.jianguo.utilitybox
然后确定
这个时候就会有恭喜您!
应用创建已完成。
我们选择前往控制台,然后来到Severless这一块。把我们需要的认证服务,云函数,云数据库,云缓存,云存储,统统打开。
我们回到IDE继续开发,点击Finsh就可。
出现这个,我们ok就可以。
然后大家可以看到工程配置完成
成功创建工程并关联云开发资源后,DevEco Studio会为工程自动执行一些初始化配置,并开通云开发相关服务:认证服务、云函数、云数据库、云托管、API网关、云存储。所以上面我们在控制台的操作其实也可以不用操作。
端侧工程自动集成AGC SDK,包括AGC SDK 配置文件entry/src/main/resources/rawfile/agconnect-services.json
和在entry/oh-package.json5
配置文件中引入的AGC相关云服务最新版本SDK。
云侧工程自动集成云数据库最新版本Node.js Server SDK。
四,端云一体化开发
大家都知道我这次用的是端云一体化开发,那那么我们就有必要来了解一下端云协同的目录结构
端云一体化开发工程目录分为三个子工程:如下图所示:
- 端开发工程(Application),
- 云开发工程(CloudProgram),
- 端侧公共库(External Libraries)。
端开发工程主要用于开发应用端侧的业务代码,端开发工程目录结构如下: 端侧的目录和之前大家看到的文件目录结构都差不多
云开发工程中开发者可以为应用开发云函数和云数据库服务资源,云开发工程目录结构如下:
五,云函数开发指南
5.1 创建函数
在云端工程(CloudProgram)中可以创建函数、编写函数业务代码、为函数配置调用触发器。
- 单击“cloudfunctions”目录,选择“New > Cloud Function”创建云函数。
- 输入函数名称,单击“OK”按钮DevEco Studio自动生成函数目录。函数名称仅支持小写英文字母、数字、中划线(-),首字母必须为小写字母,结尾不能为中划线(-)。
- 云函数目录结构。
- 云函数触发器
云函数触发器在function-config.json
文件中triggers
属性中配置,当前支持HTTP触发器、CLOUDDB触发器、AUTH触发器、CLOUDSTORAGE触发器、CRON触发器五种。
5.2 开发云函数
云函数的代码实现基于不同的语言运行环境可分为Node.js、Java、Python,还有一种比较特别运行环境为Custom Runtime(自定义运行环境)。本工程的语言运行环境为Node.js。
- 云函数的入口方法:
module.exports.myHandler = function(event, context, callback, logger)
- 为云函数添加返回内容
let myHandler = async function(event, context, callback, logger) {
logger.info(event);
// do something here
callback({
code: 0,
desc: "Success."
});
};
export { myHandler };
- 调试云函数 函数开发过程中,开发者可在本地进行调试,或者将函数部署到AGC云端后,在本地触发调用云端函数。当前本地调试支持Run和Debug两种模式,Debug模式支持使用断点来追踪函数的运行情况。
5.3 调用云函数
应用集成云函数SDK后,可以在应用内直接通过SDK API调用AGC中的云函数,云函数SDK与AGC的函数调用基于HTTPS的安全访问。
六,华为认证服务
当前AGC认证服务为HarmonyOS应用/服务提供的登录认证方式有手机、邮箱和关联账号三种方式。本工程使用“邮箱+验证码”的方式作为应用的登录入口。我们这次使用的是手机号码登录
需要在AGC控制台开通认证服务(工程创建时默认开通),并在“认证方式”页签中启用“邮箱地址”。
七,元服务开发
元服务 (原为"原子化服务") 是一种基于HarmonyOS API的全新服务提供方式,以鸿蒙万能卡片等多种呈现形态, 向用户提供更轻量化的服务。具有即用即走、信息外显、服务直达的特性。
万能卡片(以下简称“卡片”)是一种界面展示形式,可以将应用的重要信息或操作前置到卡片,以达到服务直达、减少体验层级的目的。卡片常用于嵌入到其他应用(当前卡片使用方只支持系统应用,如桌面)中作为其界面显示的一部分,并支持拉起页面、发送消息等基础的交互功能。
八,总结
本文我们从元服务的基本概念,到我们实用小工具的项目开发,技术剥析,完整的了解了端元一体化开发元服务,以及如何在元服务中集成华为认证服务,到最后完成油价查询功能在卡片上及时显示,定位在卡片上实时刷新。以及点击卡片分类,还可以进入详情页查询更多物品的垃圾属性,以及动态权限的获取。
你可以学到的有
- 了解元服务的基本概念
- 使用端云一体化开发、开发云函数、开发云数据库,集成华为认证服务。
- 使用FormExtensionAbility创建、更新、删除元服务卡片。
- 使用router、message和call三种类型的事件,处理对应逻辑。
也可以点击元服务官网,了解更多信息。
学习元服务知识,掌握新技能
更多关于HarmonyOS鸿蒙Next入门开发教程:一文带你详解工具箱元服务的开发流程的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
厉害,求弄个openHarmony的机器人~
找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:BV1S4411E7LY/?p=17
运行云函数的时候报错了。
Before launch task execute failed! details: java.util.NoSuchElementException: No value present。
学习了
顶部的标题导航栏可以去掉或隐藏吗,或自定义操作按钮等?
嗯,这个教程非常的好
好的,谢谢
要在HarmonyOS鸿蒙Next中开发工具箱元服务,首先需安装DevEco Studio并配置开发环境。创建新项目时选择“Service Ability”模板,定义元服务的功能和接口。在config.json
中配置服务信息,如服务名称和权限。编写服务逻辑代码,实现onStart
、onCommand
等方法。通过ServiceAbility
类与主应用交互,确保服务稳定运行。最后,使用DevEco Studio进行调试和测试,确保功能正常。打包发布前,进行性能优化和兼容性测试。