介绍

云函数是一项 Serverless 计算服务,提供 FaaS(Function as a Service)能力,可以帮助开发者大幅简化应用开发与运维相关事务,降低应用功能的实现门槛,快速构建业务能力。下面将介绍如何在 Flutter 框架下集成云函数。

集成步骤

1. 安装 flutter 环境

a) 下载 Flutter sdk 包,地址:https://flutter.dev/docs/get-started/install/windows

将压缩包解压到任意文件夹

b) 将 flutter 命令文件添加到环境变量中

c) 在 Android Studio 中下载 Flutter 和 Dart 插件

2. 开通服务&创建工程

a) 在 AGC 创建 Android 应用并开通云函数

b) 在云函数中创建我们需要的函数,具体步骤可以参考官方文档:

https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-cloudfunction-config-0000001058511532

c) 函数创建完成后我们需要创建触发器,端侧触发我们需要创建 HTTP 触发器,具体操作方法请参考官方文档:

https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-cloudfunction-httptrigger-0000001126992899

d) 在 Android Studio 中新建 Flutter 工程

e) 将 agconnect-services.json 文件放入 Android/app 目录下

f) 配置 Maven 仓地址和 AGC 插件地址。

  1. 打开 Flutter 项目 android 文件夹下的 build.gradle 文件。
  2. 在 allprojects -> repositories 里面配置 maven 仓地址。
  3. 在 buildscript ->repositories 中配置 maven 仓地址。
  4. 在 buildscript ->dependencies 中配置 AppGallery Connect 插件地址。

3. 添加编译依赖和 AGC 插件地址。

a) 打开 Flutter 项目 android/app 文件夹下的 build.gradle 文件。

b) 在文件中添加如下配置。

4. 集成 SDK

在 pubspec.yaml 文件中添加远程配置的 pub 依赖

然后点击 Pub get 进行同步

5. 基本功能

云函数的功能其实很简单,在我们在端侧所需要做的就是调用云端的函数,但是调用氛围一下几个步骤

a) 我们需要创建一个 FunctionCallable 示例,将我们创建触发器时的触发器标识传入

FunctionCallable functionCallable = FunctionCallable("test-\$latest");

b) 函数的入参我们需要通过 map 的格式来传入

Map<String, dynamic> parameters = <String, dynamic> {
'year': _functionTextController.text
};

c) 最后我们通过 call 方法将入参传入后调用云端函数

FunctionResult functionResult = await functionCallable.call(parameters);

通过 FunctionResult,我们就可以获取到函数的返回。

总结

华为 AGC 云函数支持将一些比较复杂或者同样的计算过程在云上部署,客户端通过 SDK 的调用便可得到您想要的计算结果,为开发者节省了大量和开发成本和便利。

如何在 Flutter 中集成华为云函数服务的更多相关文章

  1. 华为云函数中使用云数据库的JavaScript SDK基础入门

    背景介绍 使用云数据库Server端的SDK,此处我以华为提供的官方Demo为例,他们的Demo也已经开源放在了GitHub上,大家需要的可以自行下载. https://github.com/AppG ...

  2. 如何在 Centos7 中使用阿里云的yum源

    如何在 Centos7 中使用阿里云的yum源 1. 备份原来的yum源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Ba ...

  3. 详解如何在Laravel中增加自定义全局函数

    http://www.php.cn/php-weizijiaocheng-383928.html 如何在Laravel中增加自定义全局函数?在我们的应用里经常会有一些全局都可能会用的函数,我们应该怎么 ...

  4. 【华为云技术分享】智能诊断和优化,华为云DAS服务云DBA平台让您无忧运维

    摘要:随着时代的发展,传统的“人工”运维方式,已经逐渐跟不上企业业务发展的需要.如何更好的保证数据库系统的稳定性.安全性.完整性和高性能,实现运维工具化.产品化.自助化.自动化,是当前数据管理和运维面 ...

  5. Kubernetes入门(四)——如何在Kubernetes中部署一个可对外服务的Tensorflow机器学习模型

    机器学习模型常用Docker部署,而如何对Docker部署的模型进行管理呢?工业界的解决方案是使用Kubernetes来管理.编排容器.Kubernetes的理论知识不是本文讨论的重点,这里不再赘述, ...

  6. 云图说丨初识华为云微服务引擎CSE

    摘要:微服务引擎(Cloud Service Engine,CSE),是用于微服务应用的云中间件,为用户提供注册发现.服务治理.配置管理等高性能和高韧性的企业级云服务能力 本文分享自华为云社区< ...

  7. 如何在ios中集成微信登录功能

    在ios中集成微信的登录功能有两种方法 1 用微信原生的api来做,这样做的好处就是轻量级,程序负重小,在Build Settings 中这样设置 然后设置 友盟的设置同上,但是要注意,加入你需要的所 ...

  8. 如何在cmd中集成git

    1.要在cmd中集成git,要解决在cmd中输入git命令时不提示git不是内部或外部命令: 即需要将git添加到path变量中,即将D:\Git\mingw64\bin和D:\Git\mingw64 ...

  9. 如何在JavaScript中使用高阶函数

    将另一个函数作为参数的函数,或者定义一个函数作为返回值的函数,被称为高阶函数. JavaScript可以接受高阶函数.这种处理高阶函数的能力以及其他特点,使JavaScript成为非常适合函数式编程的 ...

随机推荐

  1. 移动端字体图标不显示的Bug

    用16进制编码的字体图标在部分小米机型显示不正常. 测试机型:小米1,小米1s,小米2浏览器:微信6.1内置浏览器,QQ浏览器 5.7 X5内核字体图标:不显示svg图标:显示正常 以下来自额微信内置 ...

  2. SSRF打内网redis

    0x00 redis基础 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统.Redis是一个开源的使用AN ...

  3. 【Java】java基础

    文章目录 Java基础 1 注释.标识符.关键字 1.1 注释 1.2 关键字 1.3 标识符 1.4 数据类型 1.4.1 基本类型 1.4.2 引用类型 1.4.3 整数类型拓展 1.4.4 浮点 ...

  4. Ajax_同源策略以及跨域问题

    Ajax_同源策略 同源策略是浏览器的一种安全策略, 同源指的是:协议.域名.端口.必须完全相同. 违背同源策略就是跨域. 而AJAX是默认遵循同源策略的: 同源说通俗一点呢就是页面跟获取请求的接口是 ...

  5. 计算机视觉3-> yolov5目标检测1 |从入门到出土

    本来就想着是对自己第一次跑yolov5的coco128的一个记录,没想到现在准备总结一下的时候,一方面是继续学习了一些,另一方面是学长的一些任务的要求,挖出了更多的东西,所以把名字改为了"从 ...

  6. HttpServletRequest接口详解

    般情况下,浏览器(客户端)通过 HTTP 协议来访问服务器的资源,Servlet 主要用来处理 HTTP 请求.Servlet 处理 HTTP 请求的流程如下: Servlet 容器接收到来自客户端的 ...

  7. 🏆【Alibaba中间件技术系列】「RocketMQ技术专题」系统服务底层原理以及高性能存储设计分析

    设计背景 消息中间件的本身定义来考虑,应该尽量减少对于外部第三方中间件的依赖.一般来说依赖的外部系统越多,也会使得本身的设计越复杂,采用文件系统作为消息存储的方式. RocketMQ存储机制 消息中间 ...

  8. Go 面向对象之结构体

    #### Go 面向对象之结构体最近有四天没更新公众号,有一些事情耽误了,生活就是这样,总会一些事情让人措不及防; ***山浓水浅,坐看流年***1. Go 也支持面向对象编程(OOP) 但是它和传统 ...

  9. xargs、管道、exec区别

    作者:ilexwg链接:https://www.zhihu.com/question/27452459/answer/170834758来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...

  10. 用shell脚本写出检测/tmp/size.log文件,如果存在显示它的内容,不存在则创建一个文件将创建时间写入

    1 #!/bin/bash 2 if [ -d "/tmp" ]; then 3 echo "/tmp is exists" 4 else 5 mkdir /t ...