鸿蒙端云一体化开发--调用云函数--适合小白体制

如何实现在端侧调用云函数?

观看前,友情提示:

 不知道《如何一键创建端云一体化模板》的小白同学,请看:

鸿蒙端云一体化开发--开发云函数--适合小白体制-CSDN博客

实现方法:

第一步:添加依赖

        如果你用的不是《端云一体化模板》进行创建项目的,你就要自行在端侧的 oh-package.json5 中添加依赖:

"dependencies": {"@hw-agconnect/cloud": "^1.0.0","@hw-agconnect/hmcore": "^1.0.0","@hw-agconnect/auth-component": "^1.0.0","long": "5.2.1"}

注:oh-package.json5文件是在端测ArkTS开发中entry模块下的,它就是管理端侧依赖的。

如果你使用的是《端云一体化模板》进行创建项目的,则系统创建自带依赖:

第二步:初始化AGConnect

        初始化AGConnect,它是我们接下来调用云函数、使用云数据库、使用云存储的一个前提,简单来说,你只要使用到云侧的功能就必须先做一件事就是初始化AGConnect。当然,如果你用的是《端云一体化》模板生成好的,那么初始化AGConnect代码就已经生成好了。

初始化AGConnect相关代码介绍:

第一:引入initialize函数

import { initialize } from '@hw-agconnect/hmcore';

第二:调用initialize函数

initialize(this.context, JSON.parse(json));的解析:

this.context:传递的是端侧UIAbility的上下文对象 

JSON.parse(json)是从云侧agconnect-services.json文件中传递进来的,所以上三行代码就是为了解析agconnect-services.json文件的配置文件信息,而agconnect-services.json文件存放位置一般是:

1. AppScope/resources/rawfile/agconnect-services.json

2. entry/resources/rawfile/agconnect-servicesn.jso

案例:

那这个agconnect-services.json文件它里面放了些什么东西呢?

答:存放的是我们云侧应用的一些相关配置信息。

我们可以转向看看AGC控制台:

如果你不是使用《端云一体化》模板创建应用的,可在AGC控制台上可以手动下载agconnect-services.json文件。但是请注意:

请下载最新的配置文件(如果您修改了项目、应用信息或者更改了某个开发服务设置,可能需要更新该文件)

而agconnect-services.json文件是相应应用的配置文件,有了配置文件,端侧那边才知道怎么根据这个配置文件去连接云侧,去执行云侧的相关功能。

如果你使用的是《端云一体化》模板创建应用的,它已经自动帮我们下载好并且存储在DevEco Studio开发软件内项目工程相应位置上。

如果你项目和应用做了更改,请记得重新下载最新的agconnect-services.json文件,将其copy覆盖原文件。

补充内容(可选看)

在initialize函数中,它是怎么去读取这个agconnect-services.json配置文件的呢?

答:

但是上述代码操作感觉很繁琐,所以有没有更简介的方法?

答:有的,教你一招:

我们可以用import语句,来引入这个agconnect-services.json文件,而且引入的结果就直接会拿到最终我们需要的JSON对象:

第一步:利用import语句进行导入:

修改之前的代码:

再补充一点:

我们initialize函数不仅仅可以在onWindowStageCreate这个方法内调用,根据官网文档,initialize函数也可以放在onCreate里面来调用:

如果你不是使用端云一体化模板添加:

操作如下:

下载 agconnect-services.json 文件(由端云一体化模板下载)

存放位置一般是

AppScope/resources/rawfile/agconnect-services.json

entry/resources/rawfile/agconnect-services.json

初始化代码一般放在 EntryAbility

import { initialize } from '@hw-agconnect/hmcore';
// @ts-ignore
import json from '../../resources/rawfile/agconnect-services.json'export default class EntryAbility extends UIAbility {onCreate() {try {initialize(this.context, json);} catch (e) {hilog.error(0x0000, 'AGConnectError', JSON.stringify(e))}// ...
}
}

第三步:ArkTS 界面开发

第一步创建一个page页面:

在这里我们只想做一个按钮,点击按钮即可触发云函数:

创建MyIndex页面:

注意:别忘记修改项目启动,跳转到首先是我们的MyIndex页面:

第四步:调用云函数

对按钮添加onClick()事件,并且调用一个叫cloud对象来调用云函数:

  • name 是云函数名
  • version 是云函数版本,$latest 即为最新版本
  • params 是输入参数,注意会封装在 event.body 中,且需要自己 JSON.parse

而cloud对象来自于我们之前的项目依赖:

那么要接收云函数返回的结果,要什么来接收呢?

首先了解一下cloud的callFunction函数的返回类型:

因为是Promise封装的,所以我们要awit异步调用:

进行测试:

注意:调用云函数不是使用预览器实现的,要在模拟器或者真机中进行测试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/817531.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Elasticsearch课程介绍

1.核心知识篇 一、简介 1.为何要学习es 二、环境安装 1.安装Elasticsearch、Kibana、Head 三、核心概念 1.Elasticsearch简介 2.倒排索引、3.Lucene简介、4.cluster、5.index、6.shard、7.doc 四、mapping 1.dynamic mapping、2.数据类型、3.映射参数 五、搜索 1.Que…

什么是人力资源成本?人力资源成本有哪些?

人力资源成本是企业运营成本的重要组成部分,对企业的财务状况和经营效率有着直接影响,如今企业面临着持续的成本压力和效率挑战。人力资源成本不仅直接关联企业的运营效率,还影响着企业的长期战略发展。因此,如何优化人力资源成本…

【Linux】 OpenSSH_7.4p1 升级到 OpenSSH_9.6p1(亲测无问题,建议收藏)

👨‍🎓博主简介 🏅CSDN博客专家   🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入&#xff01…

判断IQ水平-第12届蓝桥杯选拔赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第50讲。 判断IQ水平&#…

【投稿优惠-EI稳定检索】2024年设计、数字化技术与新闻传播国际学术会议(ICDDTJ 2024)

2024 International Conference on Design, Digital Technology and Journalism 网址:www.icddtj.com 邮箱: icddtjsub-conf.com(备注于老师推荐享投稿优惠) 投稿主题请注明:ICDDTJ 2024通讯作者姓名(否则无法确认您的稿件&…

大厂Java笔试题之判断一个数是否自守数

题目:自守数是指一个数的平方的尾数等于该数自身的自然数。例如:25^2 625,76^2 5776,9376^2 87909376。 请求出n(包括n)以内的自守数的个数 数据范围: 1≤n≤10000 输入描述: int型整数 输出描述&…

Linux安装及管理程序

目录 一.Linux应用程序基础 1.应用程序与系统命令的关系 2.典型应用程序的目录结构 3.常见的Linux软件包封装类型 二.RPM 软件包管理工具 1.RPM 软件包管理器 Red-Hat Package Manger 2.RPM软件包 3.RPM命令 三.源代码编译安装 1. yum 软件包管理器: 配…

dremio作业概括

1. Summary 属性 描述 Status 表示一个或多个作业状态。作业和状态 Total Memory 提供有关查询操作的实际成本(以内存为单位)的统计信息。 CPU Used 提供有关查询操作的实际成本(CPU 处理)的统计信息。 Query Type 表示五…

好数(蓝桥杯)

文章目录 好数题目描述暴力方法一暴力方法二(超时) 好数 题目描述 【问题描述】 一个整数如果按从低位到高位的顺序,奇数位(个位、百位、万位 )上的数字是奇数,偶数位(十位、千位、十万位 …

Jmeter安装教程

介绍 : Jmeter主要是用来测接口的; 优缺点 : 下载 : 地址 : https://jmeter.apache.org/download_jmeter.cgi 这里提供网盘链接 : https://pan.baidu.com/s/1RbDIDhJcgE 验证码 : 968v 安装 解决中文乱码问题 : 在bin目录瞎找到jmeter.properties : 然…

【嵌入式】嵌入式系统常见文件系统大盘点

🧑 作者简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向的学习指导…

mysql 查询实战3-题目

看了mysql 查询实战2-解答,里面有个新知识,异或的解决交换座位的处理,接着看实战3的题目 11、查询每⽉产品交易与退款情况 目标: 查询每⽉产品交易(交易总额,交易数)与退款情况(退款…

this详解

浏览器 指向window node js 指向global var a 10; function foo (){console.log(this.a)} foo(); 在严格模式下,this指向undefined. "use strict";var a 10;function foo() {console.log(this1,this);console.log(window.a);console.log(this.a) };console.log(win…

强大的系统监测工具 iStat Menus for mac最新中文激活版

iStat Menus for Mac是一款功能强大的系统监控工具,专为Mac用户设计,旨在帮助用户全面了解电脑的运行状态,提高电脑的性能和稳定性。 iStat Menus for mac最新中文激活版下载 该软件可以实时监测CPU使用率、内存占用、网络速度、硬盘活动等各…

React状态管理比较原理

一、React状态管理库 按照23年下载使用顺序依次是: ReduxZustandMobXRecoilJotaiValtio 二、各状态管理库简要概述 Redux:Redux 是一个行业标准的状态管理库,它利用 flux 架构来创建不可变的数据存储。 优点 提供可预测的、一致的状态…

java学习——消息队列MQ

上一篇传送门:点我 目前只学习了RabbitMQ,后续学习了其他MQ后会继续补充。 MQ有了解过吗?说说什么是MQ? MQ是Message Queue的缩写,也就是消息队列的意思。它是一种应用程序对应用程序的通信方法,使得应用…

Java算法之时间复杂度和空间复杂度的概念和计算

1. 算法效率 如何去衡量一个算法的好坏? 通常我们从时间效率和空间效率两个方面去分析算法的好坏。时间效率即时间复杂度,空间效率被称为空间复杂度。时间复杂度主要是衡量一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外空间…

基于springboot的服装生产管理系统源码数据库

基于springboot的服装生产管理系统源码数据库 摘 要 本协力服装厂服装生产管理系统设计目标是实现协力服装厂服装生产的信息化管理,提高管理效率,使得协力服装厂服装生产管理作规范化、科学化、高效化。 本文重点阐述了协力服装厂服装生产管理系统的…

有道词典网页版接口分析与爬虫研究

说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除 作者:zhu6201976 一、目标站点 有道词典网页版:网易有道 二、目标接口 url:https://dict.youdao.com/jsonapi_s?doctypejson&…

Linux系统搭建FastDFS文件服务结合内网穿透实现公网访问本地文件

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…