兄弟萌,鸿蒙开发更新迭代很快,当前最新版本已经来到了DevEco Studio 6.0.2 Release,api level 是API Version 22 Release。咱直接进入主题。

一、 问题痛点

咱们按照网上教程啊,比如b站黑马的视频进行操作,发现依赖或者是模块根本不适配了已经,主要问题还是咱们运行模拟器时会出现各种错误,反正就是调用不了云函数。

二、 原因点

根据华为开发官网上最新给出的说法,如何需要模拟器来调用函数的话必须咱们的DevEco Studio是得到达6.0.0版本才行。其次就是由于咱们模拟器属于不被信任,需要额外设置一个模拟器调试凭据。

三、具体操作

为了方便大家理解,咱直接从头开始操作,跟着做,包行的!

第一步  更新版本

首先咱们要看一下自己的开发工具DevEco Studio是什么版本的。如果不够6.0.0,那咱们就需要去官网下载最新的DevEco Studio。这是具体的地址昂:最新版本 - 下载中心 - 华为开发者联盟 (huawei.com),然后看咱们电脑型号选择对应的软件包来安装就行。

第二步  自动签名设置

关于在AppGallery Connect平台创建对应的项目及其应用啥的,咱就不在这赘述了,冲着解决核心问题去。

首先对咱们的应用进行一个自动签名设置。

这一步的目的是为了接下来能获取一个调试凭据

文件-> 项目结构 -> 点击signing Config

勾选上Automatically generate signature 

然后点击 apply  -> ok 即可

第三步  获取调试凭据

在已经运行的模拟器上,执行我们当前的Index.ets文件。

然后点击模拟器上的run按钮,进入模拟器后,点击调用云函数来获取调试凭据。

获取方式如下图:运行代码后,点击日志,在HiLog栏目下,选择 No filters,搜索栏中输入clouddevelopproxy.debugToken。其中clouddevelopproxy.debugToken= xxx。这个xxx就是我们的调试凭据

为保持大家操作一致性,我这边提供Index.ets和云函数详细代码内容(云函数部署到云侧就不在此赘述)

Index.ets:

ps:请注意在此代码中修改云函数的具体name

import { cloudFunction } from '@kit.CloudFoundationKit';//云函数
import { BusinessError } from '@kit.BasicServicesKit';
interface IData{
  title:string
}
interface  IResultData {
  code:number
  desc:string
  data:IData[]
}

interface Ires {
  result: IResultData
}
@Entry
@Component
struct Index {
  @State receiveMsg:string=''
  @State data:IData[]=[]
  build() {
    Column(){
      Button("获取云函数数据").fontSize(40).height(80).width('98%')
        .onClick(async ()=>{
          cloudFunction.call({ name: 'test01' }).then((res: cloudFunction.FunctionResult) => {
            let callback  = res as Ires;
            this.data=callback.result.data

          }).catch((err: BusinessError) => {
            console.error(`Failed to call the function, Code: ${err.code}, message: ${err.message}`);
          });
        })
      List({space:10}){
        ForEach(this.data,(item:IData)=>{
          SubItem({title:item.title})
        })
      }
      Text(this.receiveMsg)
    }.width("100%")

  }
}
@Preview@Component
export struct SubItem{
    title:string='--'
  build() {
    Row(){
      Column({space:5}){
        Text(this.title).fontSize(20).maxLines(1).textOverflow({overflow:TextOverflow.Ellipsis})
      }.width("60%")
    }
  }
}

云函数内容:
 

let myHandler = async function (event, context, callback, logger) {
  logger.info(event);

  // do something here

  callback({
    code: 0,
    desc: "Success.",
    data: [
      {
        "title": "我是最棒的"
      },
      {
        "title": "一直是"
      }
    ]
  });
};

export { myHandler };

第四步 注册调试凭据(在AGC平台上操作)

这里是具体网址:AppGallery Connect (huawei.com)

登录后 点击证书、app这个按钮

进入后 选择 模拟器调试凭据,点击右上角的注册凭据

应用名称这一行的下拉框中 选择我们此次项目对应的应用

调试凭据这一行中copy我们上一步中获取的调试凭据,点击注册

第五步 调试

最后重新启动一下我们的的代码进程

再次点击 调用云函数,即可成功。 谢谢观看,一起加油!!!

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐