在正在推广试用的HarmonyOSNEXTDeveloperBeta1版本SDK专用的IDE中,创建项目时,可以看到模板中多了一个[CloudDev]EmptyAbility,
用这个模板创建的鸿蒙项目,就是采用本文即将进行介绍的云端一体化开发模式。
在云端一体化模式下,开发者可以使用云函数进行项目解耦,起到类似传统的分布式应用的效果,而且还不用特别费劲地搭建一个服务端。同时,也能够使用云数据库去存储数据,减轻对本地存储空间的使用。
下面就详细介绍鸿蒙的云端一体化开发如何进行操作。
二、必要前提和准备工作1、必要前提
实际上,当你看到此文时,如果已经在使用Beta1版本的DevEcoStudio编写鸿蒙应用时,那么必要前提就早已具备了。因为,这里必要前提,就是要拥有一个华为开发者账号。
2、准备工作
首先,需要明白的一点,云服务功能不可能白白让你使用,免费额度只有一定的,而为了在超额使用时能够保障应用的正常,就需要支付相关费用,所以,就需要到华为开发者平台中,给自己的华为开发者账号开通付费服务:
这里需要强调的是,别一看到付费两个字,就打退堂鼓,不学鸿蒙的云端一体化开发技术了。实际上,华为给我们开发者准备的免费配额,足够我们自己进行Demo体验:
所以,完全不用担心一开始就要出钱。
其次,要到华为的AppGalleryConnect平台上创建项目,并在项目下创建好应用,这样一来在IDE上创建CloudDevApp时,才能根据包名信息匹配到相应的云函数、云数据库设置。
最后的准备工作,就是开通项目下的云函数服务和云数据库服务。AppGalleryConnect平台上新建的项目,默认是不打卡云函数服务和云数据库服务的,需要项目持有者、也就是鸿蒙应用的开发者,手动开启相关云服务功能。
三、创建本地项目1、创建项目
上面的准备工作完成后,就可以用自己电脑上的DevEcoStudio创建局部云端一体化能力的鸿蒙项目了。创建项目的时候,除了要使用本文最开始提到的项目模板外,还需要注意填写的包名信息,保持和AppGalleryConnect平台上创建的、已开通云函数服务和云数据库服务的应用一致。
2、了解工程目录
当项目创建完成后,注意看一下编辑器窗口左侧的项目树,就会发现采用云端一体化开发模式的工程,与普通工程的项目树有很大的不同:
从上图就可以清楚的看到,云端一体化开发模式的鸿蒙应用工程,项目树由两个顶级模块组成,一个是和普通应用一样的Application模块,一个则是云端一体化才有的CloudProgram模块,而这个CloudProgram模块,就是编写云函数、定义云数据库表结构的地方,从CloudProgram模块的子目录clouddb和cloudfunctions,便能获知这一点。
、认识云函数调试工具
对于云函数,DevEcoStudio还集成了一个进行调试的工具,就在窗口的右侧边栏上,一个名叫CloudFunctionsRequestor的地方,
打开后的界面如上所示,可以调试哪一个云函数,并且还能选择是调试本地的还是远程的——通常是在本地编写好代码确认无误之后,才会部署到云上。上面的输入框,用于输入请求参数,下面则是云函数返回的结果。两个文本框中间的按钮,一个是发起请求进行调试的按钮,一个则是进行样例保存的按钮。
四、开发云函数1、了解构成
由于云函数在IDE上就有工具可以调试,所以最先进行体验。项目创建的时候,已经根据模板创建了一个名为id-generator的函数,一个云函数对应一个文件夹,而云函数文件夹下面,通常由如下内容构成:
除了tsconfig.json是本地运行后产生的,其余的都是创建时就有的。从文件后缀,就可以知道,云函数的源码位于ts文件中,而其余的都是一些配置相关的。定义云函数入口的配置,就在function-config.json中:
同时,该文件还配置了云函数的触发类型——HTTP触发,除了HTTP触发,鸿蒙云函数还支持以下几种触发模式:
由于HTTP触发更接近与传统的分布式开发模式,所以,先默认使用HTTP触发器。
剩下的package.json文件,应该是任何一个开发过Nodejs项目的人,所清楚和了解的了:
所以,把注意力集中放在函数源码上:
函数处理结果,会放在一个HttpResponse中,而该HttpResponse最终由Callback传出。关于云函数源码的内容,更详细的,会在后面讲编写云函数的一节中,下面先了解如何部署云函数、以及在本地启动云函数。
2、部署和启动云函数
选中一个云函数文件夹,鼠标右键,就会发现一个和部署、同步相关的选项:
部署成功时,IDE编辑器右下角会有相应的信息提示,而到AppGalleryConnect平台的同一项目的云函数管理界面中,也可以看到自己部署的云函数:
在本地运行云函数,也是通过鼠标右键触发的,其实,就相当于在本地启动了一个用Typescript开发的服务实例:
、编写云函数
下面,开始介绍如何进行云函数开发,以根据入参返回指定格式的日期时间字符串为例,进行Demo演示。
创建云函数时,先选中cloudfunctions这个文件夹,然后,鼠标右键并选择新建CloudFunctions,进入云函数名编辑对话框:
按照命名规则取一个适当的名称,例如叫generate-time-str,再点击确认,那么在cloudfunctions目录下,就会新增一个云函数文件夹。
保持云函数配置文件不动,径直打开源码文件,编写如下的一段代码:
这里,可以看到请求入参,是放在event对象中的,参数的key名,保持和你请求入参时的相同。剩下的代码,都不难理解,我也就不多解释了。剩下的部署和运行,和前面的id-generator是一样的。
在本地调试好之后,别忘了将函数部署到云上,否则就不叫云函数了。
五、使用云数据库了解了函数上云后,接着了解如何使用鸿蒙云端一体化开发框架下的云数据库。
1、认识目录结构
如上所示,clouddb目录的结构,相对简单一些,配置文件只有一个,剩下的都是数据相关的JSON文件。其中,objecttype文件夹下的JSON文件,放置着数据表的定义,而dataentry目录下的JSON文件,则是根据objecttype编写的数据记录。
除此之外,根据objecttype还可以在Application模块的Entry目录下生成对应的ClientModel,而ServerModel则可以放在前面介绍的cloudfunctions下的云函数文件夹中,这两步操作,都可以通过鼠标右键的菜单选项来完成。
2、定义数据结构
云数据库数据表的定义,采用了不同于传统关系型数据库的方式,不使用SQL语句定义表结构,而是采用JSON文件进行描述,例如下面:
最开始的indexes数组,定义的是类似索引的东西,而中间的permissions则是定义不同角色所拥有的读写权限,objectTypeName定义表名,fields定义具体的数据字段。
、插入数据
表结构定义好之后,就可以在dataentry目录下,创建对应的Entity文件,其实就是具体的数据记录:
开头处的cloudDBZoneName,可以理解为关系数据库下的具体数据库名。
4、部署数据库
当数据表定义文件和数据记录文件,都编写好之后,就可以像部署云函数一样,部署本地创建的数据表到华为的AppGalleryConnect平台上,具体操作还是鼠标右键的相关菜单项。
当部署成功后,到AppGalleryConnect平台的云数据库管理页,就可以看到相应的数据:
#华为鸿蒙系统#转载请注明:http://www.ribaozhoukan.com/rbjs/15414.html