介绍

云函数是一项 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. vue中动画的使用

    不要在router-view的外层使用动画!不要在router-view的外层使用动画!不要在router-view的外层使用动画! 重要的事情说三遍,在app.vue中自以为奇思妙想(实际是脑残)在 ...

  2. .Net 线程安全集合

    .Net 提供了基于生产-消费模式的集合类,这些集合对多线程访问安全,定义在System.Collections.Concurrent名称空间中.这个名称空间中包括基础接口IProduceConsum ...

  3. 【从小白到专家】收官!Istio技术实践之九:路由控制与灰度发布

    本期是Istio技术实践专题的最后一个模块,主题是Istio的路由控制与灰度发布.上一期我们讲到,虚拟服务(Virtual Service)以及目标规则(Destination Rule)是 Isti ...

  4. 【Java常用类】String

    文章目录 String String实例化的方式 方式一:通过字面量定义 方式二:new + 构造器的方式 String s = new String("abc")方式创建对象,在 ...

  5. HTTP API认证授权方案

    目录 一.需求背景 二.常用的API认证技术 2.1 App Secret Key + HMAC 2.2 OAuth 2.0 2.2.1 Authorization Code Flow 2.2.2 C ...

  6. JSON串、JSON对象、Java对象的相互转换

    对象类型转换2: com.alibaba.fastjson.JSONObject时经常会用到它的转换方法,包括Java对象转成JSON串.JSON对象,JSON串转成java对象.JSON对象,JSO ...

  7. 2月1日 体温APP开发记录

    1.阅读构建之法 现代软件工程(第三版) 2.观看Android开发视频教程最新版 Android Studio开发

  8. 建造者模式(Bulider模式)

    模式的定义与特点 建造者(Builder)模式的定义:指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式.它是将一个复杂的对象分解为多个简单的对象 ...

  9. C++与lua交互之C++访问lua

    假设lua中: name="gzw" id=17010805 sex=man tab={ num=100, str="hello" } foo_one=func ...

  10. gin中在中间件或handler中使用goroutine

    package main import ( "fmt" "github.com/gin-gonic/gin" "log" "tim ...