鸿蒙API12 端云一体化开发——云函数篇

打印 上一主题 下一主题

主题 1788|帖子 1788|积分 5364

大家好,我是学徒小z,我们接着上次的端云一体化继续解说,本日来说说云函数怎么创建和调用

  
云函数

1. 入口方法



  • 在CloudProgram中编写,右键点击cloudfunctions进行创建

  1. module.exports.myHander = function(event, context, callback, logger)
复制代码


  • myHandler:入口方法名称。
  • event:调用方传递的事件对象,JSON格式。具体内容请参见对象
  • context:函数运行时上下文对象,封装了日志接口、回调接口、情况变量env对象等。
  • callback:事件处置惩罚结果。
  • logger:记录日志。
2. 编写云函数

  1. let myHandler = async function (event, context, callback, logger) {
  2.   // 打印输入的信息,因为传递的内容可能是一个对象,所以使用JSON方法解析
  3.   logger.info(JSON.stringify(event));
  4.   // 返回的内容
  5.   callback({
  6.     code: 0,
  7.     message: `Cloud Function test1 `
  8.   });
  9. };
  10. // 暴露
  11. export { myHandler };
复制代码
运行结果图如下,如果没有体现任何东西,请看3,有则忽略第三步

3. 进行云端测试





  • 点击test函数的测试功能

4. 在当地端侧调用云函数



  • EntryAbiltiy中
  1. //在EntryAblity中
  2. import { buffer } from '@kit.ArkTS';
  3. import { initialize } from "@hw-agconnect/hmcore"
  4. //在onCreate中加入
  5. const value = await this.context.resourceManager.getRawFileContent('agconnect-services.json');
  6.     let json: string = buffer.from(value).toString('utf8');
  7.     initialize(this.context, JSON.parse(json));
复制代码


  • 在项目目录下的oh-package.json5中
  1. "dependencies": {
  2.     "@hw-agconnect/cloud": "^1.0.0",
  3.     "@hw-agconnect/hmcore": "^1.0.0",
  4.     "@hw-agconnect/auth-component": "^1.0.0",
  5.     "long": "5.2.1"
  6.   },
复制代码


  • 然后就可以在pages页面中进行云函数的调用
  1. //比如cloudFunction中添加一个button来调用云函数
  2. Column(){
  3.         Button("调用test云函数").onClick( async()=>{
  4.           const result =  await cloud.callFunction({
  5.             name:'test', // 云函数名称
  6.             version:"$latest", // 云函数版本,$latest表示为最新版
  7.             params:{request:"你好"} // 传递参数
  8.           })
  9.           this.message =result.getValue().message
  10.         })
  11.         Text(this.message)
  12.       }.width(200).height(100)
复制代码


  • 如果未体现任何文字,则看下一步,否则跳过
    添加agconnect文件
    在项目设置中找到应用,然后下载json文件,添加到entry目录下的rawfile目录下,没有则创建一个rawfile目录


5. 云函数传参



  • 在上面当地测试中,已经有参数传入,因此只需要在此处进行接收即可
    利用JSON.parse(event.body).request
  1. let myHandler = async function (event, context, callback, logger) {
  2.   // 打印输入的信息,因为传递的内容可能是一个对象,所以使用JSON方法解析
  3.   logger.info(JSON.stringify(event));
  4.   const other = JSON.parse(event.body).request
  5.   // 返回的内容
  6.   callback({
  7.     code: 0,
  8.     message: `Cloud Function test1 ${other} `
  9.   });
  10. };
  11. // 暴露
  12. export { myHandler };
复制代码
6. 情况变量



  • 配置情况变量需要在AGC中的云函数中进行配置,点击云函数名称。

    结果图如下


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

惊雷无声

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表