0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

HarmonyOS 3.1 Beta 1本地模擬器和端云一體化體驗

ITMING ? 來源:ITMING ? 作者:ITMING ? 2023-02-21 12:42 ? 次閱讀

2月16日,DevEco Studio小助手在華為開發(fā)者論壇分享了DevEco Studio 3.1 Beta1版本發(fā)布信息,該版本與Harmony OS SDK 3.1.0 Developer Beta1版本配套,與HarmonyOS模擬器鏡像3.1.0 Developer Beta1版本配套,與OpenHarmony 3.2.10.6版本配套。該版本在Canary1基礎(chǔ)上新增了功能型特性和技能型特性,并解決了Canary1版本出現(xiàn)的一些問題。其中最具有代表的兩大特性為端云一體化開發(fā)和HarmonyOS 3.1 x86本地手機模擬器,接下來將對這兩個特性做詳細說明。

關(guān)于DevEco Studio安裝將不在過多的贅述,這里只說明一下多版本的安裝,在安裝向?qū)遁d以前版本界面不做勾選,直接點擊Next按鈕進行后續(xù)操作。

安裝完成后,在安裝目錄D:\\\\Huawei\\\\DevEco Studio 3.1.0.200\\\\bin 目錄下右鍵devecostudio64.exe文件,發(fā)送到桌面快捷方式,以便于能夠快速打開。

由于官方保密協(xié)議限制,關(guān)于本地模擬器內(nèi)容暫不分享,請自行體驗

2 端云一體化

之前本人在OpenHarmony/HarmonyOS應(yīng)用程序中集成了AppGallery Connect中的認證服務(wù)做應(yīng)用程序的登錄入口,而HarmonyOS 3.1 Beta1更進一步提升了開發(fā)體驗,依托AppGakkery Connect的Serverless云服務(wù)開放接口,通過DevEco Studio的云開發(fā)能力,開發(fā)者可以在創(chuàng)建工程時通過選擇云開發(fā)模板,即可體驗端云一體化協(xié)同開發(fā),關(guān)于端云一體化詳細介紹可參見端云一體化開發(fā),這里關(guān)于概念性的不在贅述。

2.1 創(chuàng)建端云一體化示例應(yīng)用

使用DevEco Studio創(chuàng)建端云一體化示例應(yīng)用程序HelloCloud,選擇模板為Empty Ability with CloudDev。

端云一體化需要關(guān)聯(lián)云開發(fā)資源,需要在DevEco Studio中使用已實名認證的華為開發(fā)者賬號登錄。

登錄完成后在Team下拉框中選擇開發(fā)團隊,若提示以下錯誤信息,則說明未在AppGallery Connect中創(chuàng)建對應(yīng)的應(yīng)用,因此需要先去AppGallery Connect中創(chuàng)建對應(yīng)的應(yīng)用。點擊錯誤信息中的AppGallery Connect鏈接跳轉(zhuǎn)到創(chuàng)建應(yīng)用界面。

首先添加一個項目,然后添加一個應(yīng)用,配置如下:

在AppGallery Connect中創(chuàng)建應(yīng)用完成后,回到DevEco Studio創(chuàng)建工程向?qū)?,工程向?qū)詣硬樵冊摻M織下,包名下的云端相匹配的應(yīng)用信息。

HelloCloud工程創(chuàng)建完成后,在主界面Project頁簽中會顯示詳細工程目錄,包括端開發(fā)工程(Application)、云開發(fā)工程(CloudProgram)、端側(cè)公共庫(External Libraries)。

  • 端開發(fā)工程主要用于開發(fā)應(yīng)用端側(cè)業(yè)務(wù)代碼;
  • 云開發(fā)工程主要用于為端側(cè)應(yīng)用用到的云函數(shù)、云數(shù)據(jù)庫等。
    • clouddb:云數(shù)據(jù)庫工程目錄
    • cloudfunctions:云函數(shù)工程目錄

創(chuàng)建端云一體化應(yīng)用程序并關(guān)聯(lián)云開發(fā)資源后,DevEco Studio會自動初始化配置并開啟云開發(fā)相關(guān)服務(wù),如認證服務(wù)、云函數(shù)、云數(shù)據(jù)庫、云托管、API網(wǎng)關(guān)。服務(wù)開通狀態(tài)可在Event Log窗口查看,也可以在AppGallery Connect控制臺查看。

相較于我之前發(fā)布的集成AppGallery Connect認證服務(wù)實現(xiàn)登錄而言,端云一體化開發(fā)更加便捷,創(chuàng)建應(yīng)用完成后會端側(cè)應(yīng)用自動集成agconnect-services.json配置文件以及相關(guān)云服務(wù)最新版本HarmonyOS SDK,云端自動集成云數(shù)據(jù)庫SDK。

2.2 端云一體化開發(fā)體驗

使用端云一體化開發(fā),可以讓團隊協(xié)同開發(fā)更簡單,同時可以更大程度節(jié)省企業(yè)開發(fā)成本。接下來以云函數(shù)為例,更多請參見官網(wǎng)。

2.2.1 創(chuàng)建云函數(shù)

打開云端工程,在cloudfunctions目錄右鍵選擇New --> Cloud Function,輸入云函數(shù)名稱,自動生成ts文件。

云函數(shù)創(chuàng)建完成后需要在function-config.json函數(shù)配置文件中配置觸發(fā)器(會自動完成HTTP觸發(fā)器配置),當前可配置HTTP、CLOUDDB、AUTH、CLOUDSTORAGE、CRON五種觸發(fā)器,每種觸發(fā)器配置規(guī)則不同。HTTP觸發(fā)器屬性如下所示:

參數(shù) 說明
type 觸發(fā)器類型,配置為"http"
enableUriDecode 觸發(fā)器是否啟用decode。true:啟用;false:不啟用。
authFlag 是否鑒權(quán),默認為true。
authAlgor 鑒權(quán)算法,默認為HDA-System。
authType HTTP觸發(fā)器的認證類型。apigw-client:API客戶端鑒權(quán)(Client)端適用。cloudgw-client:API客戶端鑒權(quán)(Server端適用)。

在函數(shù)入口文件addition-test.ts中完善函數(shù)業(yè)務(wù)邏輯。

// myHandler為入口方法名稱
// event 調(diào)用方法傳遞的事件對象,JSON格式
// context 函數(shù)運行時上下文對象,封裝了日志接口、回調(diào)接口、環(huán)境變量env對象等
// callback 事件處理結(jié)果
// logger 記錄日志
let myHandler = async function (event, context, callback, logger) {

  // do something here
  let res = new context.HTTPResponse({
    "faas-content-type": "json"
  }, "application/json", "200");
  var body = {
    code: 0,
    message: "",
    data: null
  }
  var _body = JSON.parse(event.body);
  var username = _body.username;
  var password = _body.password;
  if (username !== 'admin') {
    body.code = 10001;
    body.message = "賬號不存在!";
  } else if (username === 'admin' && password !== '123456') {
    body.code = 10002;
    body.message = "密碼錯誤!";
  } else {
    body.code = 200;
    body.message = "登錄成功!";
    body.data = {
      username: username
    }
  }
  res.body = body;
  callback(res);
};

export { myHandler };

2.2.2 部署函數(shù)

完善函數(shù)代碼之后,可以將函數(shù)部署到AppGallery Connect控制臺,支持單個部署和批量部署。其中單個部署選中具體需要部署的函數(shù),批量部署則選中cloudfunctions目錄,右鍵選擇Deploy Function進行部署。

部署完成后,可在AppGallery Connect控制臺中云函數(shù)服務(wù)頁面查看。

2.2.3 編寫運行測試示例

ets/services目錄下編寫云函數(shù)回調(diào)方法:

// services/ArgAlgFunc.ts
import agconnect from '@hw-agconnect/api-ohos';
import "@hw-agconnect/function-ohos";

import { getAGConnect } from './AgcConfig';

export function login(context, reqBody: any): Promise<any> {
    return new Promise((resolve, reject) => {
        getAGConnect(context);
        let functionResult;
        let functionCallable = agconnect.function().wrap('argalg-$latest');
        functionCallable.call(reqBody).then((ret: any) => {
            functionResult = ret.getValue();
            resolve(functionResult);
        }).catch((error: any) => {
            reject(error);
        })
    })
}

ets/pages目錄下構(gòu)建調(diào)用云函數(shù)頁面:

import { login } from '../services/ArgAlgFunc';
import prompt from '@system.prompt';
@Entry
@Component
struct ArgAlg {
  @State result: string = "";
  @State username: string = "";
  @State password: string = "";

  getFunctionResult = () => {
    let reqBody = {
      "username": this.username,
      "password": this.password
    }
    login(getContext(this), reqBody).then((ret) => {
      this.result = JSON.stringify(ret)
      if (ret.body.code === 200) {
        prompt.showToast({
          message: `登錄成功,當前賬號為:${ret.body.data.username}`,
          duration: 5000
        })
      } else {
        prompt.showToast({
          message: `登錄失敗,原因為:${ret.body.message}`,
          duration: 5000
        })
      }
    }).catch((err) => {
      this.result = JSON.stringify(err);
      prompt.showToast({
        message: `出現(xiàn)異常,原因為:${err}`,
        duration: 5000
      })
    })
  }

  build() {
    Column() {
      TextInput({ placeholder: '請輸入用戶名'})
        .fontSize(16).placeholderFont({ size: 16 })
        .onChange((value: string) => {
          this.username = value;
        })
      TextInput({ placeholder: '請輸入密碼'})
        .fontSize(16).placeholderFont({ size: 16 })
        .onChange((value: string) => {
          this.password = value;
        })
      Button('登錄')
        .width(200).height(54)
        .fontSize(16)
        .onClick(() => {
          this.getFunctionResult();
        })

      Text(`Info: ${this.result}`).fontSize(16)
    }
    .width('100%').height('100%')
    .padding({ top: 16 })
  }
}

注:需要更改EntryAbility.tsonWindowStageCreate()方法中初始加載頁面為pages/ArgAlg。切記在調(diào)用云函數(shù)的時候,需要發(fā)布一個正式版本才能夠響應(yīng)。

2.3 運行效果

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4260

    瀏覽量

    62233
  • 模擬器
    +關(guān)注

    關(guān)注

    2

    文章

    862

    瀏覽量

    43087
  • 云服務(wù)
    +關(guān)注

    關(guān)注

    0

    文章

    798

    瀏覽量

    38828
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    1956

    瀏覽量

    29907
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3611

    瀏覽量

    15964
收藏 人收藏

    評論

    相關(guān)推薦

    智易申請】一體化機柜監(jiān)控設(shè)計

    申請理由:申請開發(fā)板設(shè)計機柜監(jiān)控系統(tǒng),曾今設(shè)計過智能電表,無線多路搶答,多旋翼飛行等,參加過電子設(shè)計國賽省賽,光電設(shè)計大賽,等。項目描述:如今設(shè)備都朝一體化,智能的方向發(fā)展,機柜
    發(fā)表于 07-23 12:15

    什么是機電一體化

    機電一體化http://www.gooxian.com/article/show-1823.htm就是“利用電子、信息(包括傳感、控制、計算機等)技術(shù)使機械柔性和智能”的技術(shù)
    發(fā)表于 08-29 09:06

    機電一體化系統(tǒng)

    如圖1.1所示,機電一體化系統(tǒng)與靈活性和智能型最強的人體相對應(yīng),由如下5個要素構(gòu)成;1) 機械裝置:能夠?qū)崿F(xiàn)某種運動的機構(gòu)(相當于人類的骨骼)。2) 執(zhí)行裝置:驅(qū)動機械裝置運動的部分(相當于人類
    發(fā)表于 08-29 09:11

    手把手教你使用HarmonyOS本地模擬器

    2021年的華為開發(fā)者大會(HDC2021)上,我們隨DevEco Studio 3.0 Beta1發(fā)布首次推出了本地模擬器(也稱為Local Emulator),支持
    發(fā)表于 02-17 16:58

    DevEco Studio 3.1 Beta1發(fā)布——新增六大關(guān)鍵特性,開發(fā)更高效

    智能代碼編輯、一體化開發(fā)、低代碼開發(fā)個性……六大新增關(guān)鍵特性,開發(fā)更高效,體驗更覺妙!立即點擊鏈接下載,做DevEco Studio 3.1
    發(fā)表于 02-24 11:22

    #DevEco Studio 3.1 Beta1更新—支持本地模擬器【API9】

    將用到的工具和各種SDK放在同個文件夾,更方便尋找和管理【不建議使用中文名稱,避免以后可能會出現(xiàn)該部分不適配】三、本地模擬器安裝首先需要創(chuàng)建個工程,進入工程界面此時點擊設(shè)備管理,進
    發(fā)表于 02-27 15:47

    DevEco Studio 3.1 Beta新特性知多少

    協(xié)同開發(fā) DevEco Studio提供的一體化開發(fā)功能,支持側(cè)、側(cè)協(xié)同開發(fā)。工程管理提供了向?qū)降?/div>
    發(fā)表于 04-23 11:06

    HarmonyOS應(yīng)用一體化開發(fā)主要流程

    圖示 *附件:HarmonyOS應(yīng)用一體化開發(fā)主要流程.docx
    發(fā)表于 05-19 14:27

    HarmonyOS元服務(wù)一體化開發(fā)快速入門(上)

    大小不能超過10MB。 三、配置工程信息 1.在工程配置界面,配置工程的基本信息。 點擊“Next”,開始關(guān)聯(lián)開發(fā)資源。 *附件:HarmonyOS元服務(wù)
    發(fā)表于 06-14 17:10

    HarmonyOS元服務(wù)一體化開發(fā)快速入門(下)

    服務(wù)(認證服務(wù)、函數(shù)、存儲)最新版本HarmonyOS SDK,同時會自動集成一體化登錄
    發(fā)表于 06-15 15:52

    鴻蒙原生應(yīng)用/元服務(wù)開發(fā)-新版本一體化模板體驗反饋

    Ability模板即可。 三、體驗 新增: 最新一體化新增“數(shù)據(jù)庫
    發(fā)表于 12-05 14:57

    HarmonyOS本地模擬器重磅來襲!

    模擬器和超級終端模擬器。 我們根據(jù)開發(fā)者多樣的需求,不斷地豐富模擬器模擬的產(chǎn)品品類,助力Harmon
    的頭像 發(fā)表于 10-30 09:16 ?5964次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>本地</b><b class='flag-5'>模擬器</b>重磅來襲!

    HarmonyOS中DevEco Studio本地模擬器體驗

    在 HDC2021 技術(shù)論壇上提出的 HarmonyOS 新特性中本地模擬器亮相,很讓我激動。模擬器作為個應(yīng)用開發(fā)者在使用 IDE 進行代
    的頭像 發(fā)表于 11-10 09:31 ?3120次閱讀
    <b class='flag-5'>HarmonyOS</b>中DevEco Studio<b class='flag-5'>本地</b><b class='flag-5'>模擬器</b>體驗

    淺析初次使用DevEco Studio本地模擬器后的體驗

    在 HDC2021 技術(shù)論壇上提出的 HarmonyOS 新特性中本地模擬器亮相,很讓我激動。模擬器作為個應(yīng)用開發(fā)者在使用 IDE 進行代
    的頭像 發(fā)表于 12-03 09:13 ?3729次閱讀
    淺析初次使用DevEco Studio<b class='flag-5'>本地</b><b class='flag-5'>模擬器</b>后的體驗

    HarmonyOS本地模擬器的版本演進與使用方法

    2021年的華為開發(fā)者大會(HDC2021)上,我們隨DevEco Studio 3.0 Beta1發(fā)布首次推出了本地模擬器(也稱為Local Emulator),支持
    的頭像 發(fā)表于 02-25 13:03 ?6092次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>本地</b><b class='flag-5'>模擬器</b>的版本演進與使用方法