一、环境准备
-
开发者账号
- 实名认证的华为开发者账号(需在AGC控制台开通项目)17。
-
开发工具
- 安装 DevEco Studio 5.0.0+ (需支持端云一体化模板)17。
二、工程创建流程
1. 创建端云一体化工程
-
步骤
- 在DevEco Studio中选择 "Atomic Service" 或 "Application" ,使用 "CloudDev"模板(如
Empty Ability withCloudDev)17。 - 登录华为开发者账号,关联AGC中的项目(需提前在AGC控制台创建应用并开通云服务)711。
- 填写工程信息(包名需与AGC应用一致)7。
- 在DevEco Studio中选择 "Atomic Service" 或 "Application" ,使用 "CloudDev"模板(如
-
目录结构
- 端侧工程 (
Application):含UI代码、agconnect-services.json配置文件。 - 云侧工程 (
CloudProgram):含云函数、云数据库代码37
- 端侧工程 (
三、关键依赖配置
1. 端侧依赖(oh-package.json5)
"dependencies": {
"@hw-agconnect/cloud": "^1.0.0", // 云函数调用
"@hw-agconnect/hmcore": "^1.0.0", // AGC核心库
"@hw-agconnect/auth-component": "^1.0.0", // 认证服务
"long": "5.2.1", // 长整型支持(云数据库需)
"protobufjs": "6.11.3" // 协议缓冲区(避免版本冲突)
}
注意:若使用非模板创建项目,需手动添加;模板工程已自动集成2610。
2. 云侧依赖
- 云函数:通过
npm install安装Node.js依赖(如@agconnect/database)3。 - 云数据库:需在
CloudProgram/clouddb下定义数据模型(JSON Schema)11。
四、核心配置与初始化
1. agconnect-services.json
-
作用:包含云服务配置(如App ID、云函数/数据库权限)26。
-
位置:
entry/src/main/resources/rawfile/AppScope/resources/rawfile/610。
-
获取方式:从AGC控制台下载并覆盖旧文件(修改配置后需更新)610。
2. 初始化AGC(在EntryAbility中)
import { initialize } from '@hw-agconnect/hmcore';
// @ts-ignore
import json from '../../resources/rawfile/agconnect-services.json';
export default class EntryAbility extends UIAbility {
onCreate() {
initialize(this.context, json); // 必须初始化
}
}
注意:未初始化会导致云功能无法调用2610。
五、云函数开发与调用
1. 创建云函数
- 右键
CloudProgram/cloudfunctions→ New → Cloud Function 11。 - 示例代码(返回随机数):
let myHandler = async (event, context, callback) => {
callback({ code: 0, message: "Success." + Math.random() });
};
export { myHandler };
- 部署:右键云函数 → Deploy Cloud Function 11。
2. 端侧调用云函数
import cloud from '@hw-agconnect/cloud';
const result = await cloud.callFunction({
name: 'hello', // 函数名
version: '1', // 版本或'$latest'
params: {} // 参数
});
console.log(result.getValue().message);
注意:需在真机/模拟器测试,预览器不支持2610。
六、云数据库操作
1. 定义数据模型
- 在
CloudProgram/clouddb/objecttype下创建JSON文件(如book.json)定义字段11。
2. 插入初始数据
- 在
CloudProgram/clouddb/dataentry下创建dataentry.json,填写初始数据11。
3. 部署数据库
- 右键
clouddb→ Deploy Cloud DB 11。
七、常见问题解决
-
protobufjs模块缺失- 降级到
6.11.3(protobufjs@7.x移除了aspromise模块)10。
- 降级到
-
真机运行报错
- 检查签名配置(需在
Project Structure → Signing Configs中启用自动签名)79。
- 检查签名配置(需在
-
云函数返回
403- 确保
agconnect-services.json中的包名与config.json一致610
- 确保
完整流程参考