【鸿蒙开发示例代码】云开发服务

代码工程地址:

CloudFoundationKit_SampleCode_ArkTS: 本示例主要实现了基于Cloud Foundation Kit在应用中使用云函数、云数据库、云存储等云端服务的功能。 (gitee.com)

Cloud Foundation Kit(云开发服务)

介绍

本示例展示了使用CloudFoundationKit提供的云函数、云存储、云数据库能力的方法,包含:

1.云函数的call函数调用功能。

2.云存储的上传下载删除功能。

3.云数据库的增删改查功能。

需要使用@kit.CloudFoundationKit。

效果预览

云函数页面云存储页面云数据库页面

Sample工程的配置与使用

在DevEco中配置Sample工程的步骤如下

  1. 创建项目应用

  2. 打开Sample应用,使用AppGallery Connect配置的应用包名替换app.json5文件中的bundleName属性值。

  3. 使用手动签名创建一个签名,替换工程中build-profile.json5文件中的signingConfigs的内容,或者使用自动签名功能,具体可参考 应用/服务签名 。

  4. AppGallery Connect平台开通云数据库、云函数、云存储服务。

  5. 云函数需要创建两个名称分别为sort和sort-id的函数,函数的内容具体可以参考工程目录下functionJSDemo文件夹中的sort_$latestsort-id_$latest

  6. 云数据库中需要配置一个名称为QuickStartDemo的存储区,创建一个名称为PicInfo的存储对象,对象属性可参考 

    然后将对象导出为json文件,名称修改为schema.json,并替换工程resources目录下rawfile文件夹中的schema.json文件,导出文件操作可参考新增对象

Sample工程使用说明
  1. 运行该Sample应用,依次点击"云函数"、"云存储"和"云数据库"按钮,会进入相应的功能展示页面。
  2. 云函数页面展示了调用sort函数返回字符串price、调用sort-id函数返回字符串id,且分别以Promise方式和Callback方式返回。
  3. 云存储页面展示了上传文件、下载文件、删除文件、获取文件地址、列出存储信息、获取和设置元数据的功能,点击相应按钮执行功能,下方的message区域会打印出相关信息。
  4. 云数据库页面展示了插入数据、按照各种条件查询数据、对查询数据数字属性的算术计算、更新数据、删除数据的功能,点击相应按钮执行功能,下方的message区域会打印出相关信息。

工程目录

├─entry/src/main/ets // 代码区

│ ├─entryability

│ │ └─EntryAbility.ets // 程序入口类

│ ├─pages // 存放页面文件目录

│ │ └─CloudDatabasePage.ets // 云数据库页面

│ │ └─FunctionPage.ets // 云函数页面

│ │ └─Index.ets // 入口类文件

│ │ └─StoragePage.ets // 云存储页面

│ │─PicInfo.ets // 云数据库对象

具体实现

云函数:调用cloudFunction.call方法传入sort 和sort-id,获取一个string类型的price和id,参考FunctionPage.ets。

  • 使用cloudFunction.call({name: 'sort'}) 以Promise方式返回一个FunctionResult对象,解析FunctionResult,最终用key sort来获取想要的值‘price’。
  • 使用cloudFunction.call({name: 'sort-id'}) 以Callback方式返回一个FunctionResult对象,解析FunctionResult,最终用key sort-id来获取想要的值‘id’。

云存储:调用相关方法实现文件上传、下载等功能,参考StoragePage.ets。

  • 上传文件API , 使用picker.PhotoViewPicker()选择一张图片,将选中文件copy至cache目录下,使用云存储API上传文件,cloudStorage.bucket().uploadFile(getContext(this), {localPath: cacheFile, cloudPath: UI.uploadFileName, mode:request.agent.Mode.BACKGROUND}),日志会打印在屏幕下方。

  • 下载文件API , 使用cloudStorage.bucket().downloadFile(getContext(this),{localPath:./${Date.now()}_+UI.uploadFileName,cloudPath:UI.uploadFileName})接口下载文件,日志会打印在屏幕下方。

  • 删除文件方法,使用bucket的deleteFile接口传入图片名称。

    let bucket: cloudStorage.StorageBucket = cloudStorage.bucket();

    bucket.deleteFile(UI.uploadFileName);

    日志会打印在屏幕下方。

  • 获取文件的URL, 使用bucket的getDownloadURL接口传入图片名称。

    let bucket: cloudStorage.StorageBucket =cloudStorage.bucket();

    bucket.getDownloadURL(UI.uploadFileName);

    日志会打印在屏幕下方。

  • 获取文件列表, 使用bucket.list('')方法返回文件列表,日志会打印在屏幕下方。

  • 获取元数据,使用bucket.getMetadata(UI.uploadFileName)方法传入文件名,日志会打印在屏幕下方。

  • 设置元数据,使用bucket.setMetadata(UI.uploadFileName, {customMetadata: { key1: "value1", key2: "value2" }})方法传入文件名,自定义元数据名称,日志会打印在屏幕下方。

云数据库:调用相关接口进行数据增删改查,参考CloudDatabasePage.ets。

  • 插入数据,首先利用PicInfo创建一个需要添加的对象pic, 调用方法databaseZone.upsert(pic)插入数据,日志会打印在屏幕下方。

  • 查询所有数据,首先创建一个查询条件 let condition = new cloudDatabase.DatabaseQuery(PicInfo),然后调用databaseZone.query(condition)查询数据,查询到的数据属性日志会打印在屏幕下方。按照各种条件查询,比如查询picName等于‘左传’的数据,设置condition的查询条件condition.equalTo('picName','左传') ,然后执行databaseZone.query(condition)查询数据,其他条件就不赘述,详细参考代码示例。

  • 查询数据后对数据的number类型的属性进行算数计算,首先创建查询条件 let condition = new cloudDatabase.DatabaseQuery(PicInfo),使用方法databaseZone.calculateQuery(condition, 'price', cloudDatabase.QueryCalculate.AVERAGE),其中price为PicInfo中的属性,AVERAGE表示计算平均值,还有其他枚举值如SUM计算和等,具体参考代码。

  • 删除数据,首先创建一个要删除的对象,设置对象的id,根据id去删除。

    let pic = new PicInfo()

    pic.id = 11

    databaseZone.delete(pic)

云数据库对象:参考PicInfo.ets。

构造函数返回的对象名称需要与AppGallery Connect上创建的对象名称一致。

参考

  1. entry\src\main\ets\pages\FunctionPage.ets
  2. entry\src\main\ets\pages\StoragePage.ets
  3. entry\src\main\ets\pages\CloudDatabasePage.ets
  4. entry\src\main\ets\PicInfo.ets

相关权限

该Sample应用在调用接口时需要访问网络权限"ohos.permission.INTERNET",已在module.json5文件中添加。

依赖

设备需具备WIFI能力

约束与限制

  1. 本示例仅支持标准系统上运行,支持设备:华为手机、平板。
  2. 本示例支持API version 12。
  3. 本示例需要使用的HarmonyOS系统版本:HarmonyOS Next Developer Beta1及以上。
  4. 本示例需要使用的HarmonyOS SDK版本:HarmonyOS Next Developer Beta1 SDK及以上。
  5. 本示例需要使用DevEco Studio Next Developer Beta1及以上版本进行编译运行。
  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
鸿蒙系统的开发通常涉及到使用华为提供的开源框架和工具,比如HarmonyOS SDK和DevEco Studio。在开发过程中,有一些基本的步骤和最佳实践被视为必选项: 1. **环境配置**:首先,你需要安装并配置DevEco Studio,这是华为官方的集成开发环境(IDE),支持鸿蒙应用的开发。 ```bash # 下载DevEco Studio https://developer.harmonyos.cdn华为.com/downloads/deveco-studio/ # 安装并启动DevEco Studio ``` 2. **创建项目**:在DevEco Studio中,选择"Create a New Project",选择"HarmonyOS App"作为项目类型。 ```java // 示例代码片段(Java): Project project = new Project(); project.setName("YourApp"); project.setTargetSdkVersion("2.0"); // 使用最新的SDK版本 ``` 3. **添加依赖**:根据你的应用需求,添加必要的模块和库到项目中,如基础模块、UI框架等。 ```xml <!-- build.gradle 文件示例 --> dependencies { implementation 'com.huawei.hms:harmonyos-sdk:latest_version' } ``` 4. **编写代码**:使用HarmonyOS提供的API实现功能,例如数据绑定、UI组件操作等。 ```java // 示例代码片段(触摸事件处理): Button button = findViewById(R.id.your_button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "Button clicked!", Toast.LENGTH_SHORT).show(); } }); ``` 5. **编译和运行**:确保代码无误后,使用DevEco Studio进行编译并部署到模拟器或真实设备上测试。 ```bash ./gradlew assembleDebug device connect your_device_ip runAsHarmonyOSApp ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值