鸿蒙(HarmonyOS 5)端云一体化开发的完整流程及关键依赖整理,涵盖工程创建、依赖配置、云函数调用等核心 原创

我睡醒再说
发布于 2025-5-16 15:25
浏览
1收藏

一、环境准备

  1. 华为开发者账号:实名认证并开通AGC项目。
  2. 开发工具:安装支持端云一体化模板的DevEco Studio 5.0.0+。
    二、工程创建流程
  3. 创建端云一体化工程:
    ○ 在DevEco Studio中选择 “Atomic Service” 或 “Application”,使用 “CloudDev” 模板。
    ○ 登录华为开发者账号,关联AGC中的项目(需提前在AGC控制台创建应用并开通云服务)。
    ○ 填写工程信息(包名需与AGC应用一致)。
  4. 目录结构:
    ○ 端侧工程 (Application):含UI代码、agconnect-services.json配置文件。
    ○ 云侧工程 (CloudProgram):含云函数、云数据库代码。
    ● 工程创建详情
    三、关键依赖配置
  5. 端侧依赖(oh-package.json):
"dependencies": {
  "@hw-agconnect/cloud": "^1.0.0",
  "@hw-agconnect/hmcore": "^1.0.0",
  "@hw-agconnect/auth-component": "^1.0.0",
  "long": "5.2.1",
  "protobufjs": "6.11.3"
}

注意:非模板项目需手动添加依赖。
2. 云侧依赖:
○ 云函数:通过npm install安装Node.js依赖(如@agconnect/database)。
○ 云数据库:在CloudProgram/clouddb下定义数据模型(JSON Schema)。
四、核心配置与初始化

  1. agconnect-services.json:
    ○ 位置:entry/src/main/resources/rawfile/ 或 AppScope/resources/rawfile/。
    ○ 获取方式:从AGC控制台下载并覆盖旧文件。
  2. 初始化AGC(在EntryAbility中):
import { initialize } from '@hw-agconnect/hmcore';
import json from '../../resources/rawfile/agconnect-services.json';
export default class EntryAbility extends UIAbility {
  onCreate() {
    initialize(this.context, json);
  }
}

五、云函数开发与调用

  1. 创建云函数:
    ○ 右键CloudProgram/cloudfunctions → New → Cloud Function。
    ○ 示例代码:
let myHandler = async (event, context, callback) => {
  callback({ code: 0, desc: "Success." + Math.random() });
};

export { myHandler };

○ 部署:右键云函数 → Deploy Cloud Function。
2. 端侧调用云函数:

import cloud from '@hw-agconnect/cloud';
const result = await cloud.callFunction({
  name: 'hello',
  version: '1',
  params: {}
});
console.log(result.getValue().message);

六、云数据库操作

  1. 定义数据模型:在CloudProgram/clouddb/objecttype下创建JSON文件(如book.json)定义字段。
  2. 插入初始数据:在CloudProgram/clouddb/dataentry下创建dataentry.json,填写初始数据。
  3. 部署数据库:右键clouddb → Deploy Cloud DB。
    七、常见问题解决
  4. protobufjs模块缺失:降级到6.11.3。
  5. 真机运行报错:检查签名配置(启用自动签名)。
  6. 云函数返回403:确保agconnect-services.json中的包名与config.json一致。

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2025-5-16 15:25:38修改
收藏 1
回复
举报
1条回复
按时间正序
/
按时间倒序
wx6279b3f5eaeb8
wx6279b3f5eaeb8

请教一下,

1,不用CloudDev模板,是否也可以用端云一体化?

2,用了CloudDev开发的APP,是否可以用在平板和电脑上?

回复
2025-6-12 12:25:40
回复
    相关推荐