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

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

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

基于ArkUI eTS開發(fā)的堅果食譜(NutRecipes)

ArkUI詳解 ? 來源:鴻蒙實驗室 ? 作者:鴻蒙實驗室 ? 2022-08-18 08:23 ? 次閱讀

今天為大家做一款堅果食譜,有大量的食譜數(shù)據(jù),覆蓋了很多種類的食譜。

請求urlUrl:https://way.jd.com/jisuapi/search?keyword=白菜&num=10&start=0&appkey=7c913be32b690701cd994d804a6d4294

實現(xiàn)的功能:

獲取接口數(shù)據(jù)

菜譜列表

菜譜詳情頁

你能學(xué)到的有:

網(wǎng)絡(luò)請求

可滾動組件

容器組件

路由跳轉(zhuǎn)

基礎(chǔ)組件

文件結(jié)構(gòu)

.

├── config.json

├── ets

│ └── MainAbility

│ ├── app.ets

│ ├── data

│ │ ├── get_cook_data.ets

│ │ └── get_test.ets

│ ├── model

│ │ ├── cookDetailModel.ets

│ │ ├── cookModel.ets

│ │ ├── materialModel.ets

│ │ └── processModel.ets

│ └── pages

│ ├── Main.ets

│ ├── cookbookDetails.ets

│ └── index.ets

└── resources

├── base

│ ├── element

│ │ ├── color.json

│ │ └── string.json

│ └── media

│ └── icon.png

└── rawfile

?

效果預(yù)覽:

image-20220724104951823

獲取新聞接口a

標(biāo)識:get

接口地址:

https://way.jd.com/jisuapi/search

請求方式:

HTTPS GET POST

請求示例:

Url:https://way.jd.com/jisuapi/search?keyword=白菜&num=10&start=0&appkey=7c913be32b690701cd994d804a6d4294

請求參數(shù)說明:

image-20220724105047682

返回參數(shù)說明:

image-20220724105034435image-20220724105104455

JSON返回示例

{"code":"10000","charge":false,"msg":"查詢成功","result":{

"status": "0",

"msg": "ok",

"result": {

"num": "10",

"list": [

{

"id": "8",

"classid": "2",

"name": "醋溜白菜",

"peoplenum": "1-2人",

"preparetime": "10-20分鐘",

"cookingtime": "10-20分鐘",

"content": "醋溜白菜,是北方人經(jīng)常吃的一道菜,尤其是在多年前的冬天。那時,沒有大棚菜,冬天,家家每天佐餐的基本上都是冬儲大白菜,聰明的家庭主婦總是想方設(shè)法將這單調(diào)的菜變成多種菜式,于是,醋溜白菜被頻繁的端上餐桌。

?

美食不分貴賤,用最平凡的原料、最簡單的調(diào)料和最普通的手法做出美味的菜肴來才是美食的真諦。

?

這次,我做的醋溜白菜,近似魯菜的做法,使個這道菜酸甜濃郁、開胃下飯、老少咸宜。",

"pic": "http://api.jisuapi.com/recipe/upload/20160719/115138_46688.jpg",

"tag": "減肥,家常菜,排毒,補鈣",

"material": [

{

"mname": "油",

"type": "0",

"amount": "適量"

},

{

"mname": "鹽",

"type": "0",

"amount": "適量"

},

{

"mname": "花椒",

"type": "0",

"amount": "適量"

},

{

"mname": "干紅椒",

"type": "0",

"amount": "適量"

},

{

"mname": "蔥",

"type": "0",

"amount": "適量"

},

{

"mname": "姜",

"type": "0",

"amount": "適量"

},

{

"mname": "蒜",

"type": "0",

"amount": "適量"

},

{

"mname": "醋",

"type": "0",

"amount": "適量"

},

{

"mname": "醬油",

"type": "0",

"amount": "適量"

},

{

"mname": "糖",

"type": "0",

"amount": "適量"

},

{

"mname": "淀粉",

"type": "0",

"amount": "適量"

},

{

"mname": "白菜",

"type": "1",

"amount": "380g"

}

],

"process": [

{

"pcontent": "準(zhǔn)備食材。",

"pic": "http://api.jisuapi.com/recipe/upload/20160719/162550_84583.jpg"

},

{

"pcontent": "將白菜斜刀片成薄片。",

"pic": "http://api.jisuapi.com/recipe/upload/20160719/162551_90620.jpg"

},

{

"pcontent": "片切好的白菜幫與菜葉分別入好。",

"pic": "http://api.jisuapi.com/recipe/upload/20160719/162551_20925.jpg"

},

{

"pcontent": "鹽、糖、生抽、醋淀粉加少許水調(diào)勻備用。",

"pic": "http://api.jisuapi.com/recipe/upload/20160719/162552_23125.jpg"

},

{

"pcontent": "鍋中油燒熱,先入花椒炒香后撈出。再加入干紅椒段略炒。",

"pic": "http://api.jisuapi.com/recipe/upload/20160719/162552_57046.jpg"

},

{

"pcontent": "加入蔥姜蒜煸炒香,然后入白菜幫翻炒。",

"pic": "http://api.jisuapi.com/recipe/upload/20160719/162553_89090.jpg"

},

{

"pcontent": "炒至菜幫變軟時,加入白菜葉。",

"pic": "http://api.jisuapi.com/recipe/upload/20160719/162553_40445.jpg"

},

{

"pcontent": "快速翻炒至菜軟,勾入碗汁",

"pic": "http://api.jisuapi.com/recipe/upload/20160719/162554_92210.jpg"

},

{

"pcontent": "使湯汁均勻的包裹在菜幫上即可",

"pic": "http://api.jisuapi.com/recipe/upload/20160719/162554_29522.jpg"

}

]

}

]

}

}}

接下來,我們開始今天的實戰(zhàn),首先創(chuàng)建一個項目NutJoke

image-20220722080412586

點擊下一步

image-20220724095142561

因為我們要網(wǎng)絡(luò)請求

所以我們需要在config.json中配置網(wǎng)絡(luò)請求權(quán)限

網(wǎng)絡(luò)請求的步驟

1、聲明網(wǎng)絡(luò)請求權(quán)限

entry下的config.jsonmodule字段下配置權(quán)限

"reqPermissions": [

{

"name": "ohos.permission.INTERNET"

}

]

2、支持http明文請求

默認(rèn)支持https,如果要支持http,在entry下的config.jsondeviceConfig字段下配置

"deviceConfig": {"default": {

"network": {

"cleartextTraffic": true

}

}},

3、創(chuàng)建HttpRequest

// 導(dǎo)入模塊

import http from '@ohos.net.http';

// 創(chuàng)建HttpRequest對象

let httpRequest = http.createHttp();

4、發(fā)起請求

GET請求(默認(rèn)為GET請求

?

// 請求方式:GET

getRequest() {

// 每一個httpRequest對應(yīng)一個http請求任務(wù),不可復(fù)用

let httpRequest = http.createHttp()

let url = "https://way.jd.com/jisuapi/search?keyword=白菜&num=10&start=0&appkey=7c913be32b690701cd994d804a6d4294"

httpRequest.request(url, (err, data) => {

if (!err) {

if (data.responseCode == 200) {

console.info('=====data.result=====' + data.result)

// 解析數(shù)據(jù)

//this.content= data.result;

// 解析數(shù)據(jù)

var cookModel: CookModel = JSON.parse(data.result.toString())

// 判斷接口返回碼,0成功

if (cookModel.code == 1000) {

// 設(shè)置數(shù)據(jù)

?

this.future = cookModel.result.result.list.material

this.cookdetail = cookModel.result.result.list

?

this.isRequestSucceed = true;

?

console.info('=====data.result===this.content==' + cookModel.result.result.list.material)

?

} else {

// 接口異常,彈出提示

prompt.showToast({ message: "數(shù)據(jù)請求失敗" })

prompt.showToast({ message: jokeModel.error_code })

}

?

} else {

// 請求失敗,彈出提示

prompt.showToast({ message: '網(wǎng)絡(luò)異常' })

}

} else {

// 請求失敗,彈出提示

prompt.showToast({ message: err.message })

}

})

}

5、解析數(shù)據(jù)(簡單示例)

1.網(wǎng)絡(luò)請求到的json字符串

/*

* Copyright (c) 2021 JianGuo Device Co., Ltd.

* Licensed under the Apache License, Version 2.0 (the "License");

* you may not use this file except in compliance with the License.

* You may obtain a copy of the License at

*

* http://www.apache.org/licenses/LICENSE-2.0

*

* Unless required by applicable law or agreed to in writing, software

* distributed under the License is distributed on an "AS IS" BASIS,

* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

* See the License for the specific language governing permissions and

* limitations under the License.

*/

?

export

function

getCookTest

() {

return

{

"id"

:

"8"

,

"classid"

:

"2"

,

"name"

:

"醋溜白菜"

,

"peoplenum"

:

"1-2人"

,

"preparetime"

:

"10-20分鐘"

,

"cookingtime"

:

"10-20分鐘"

,

"content"

:

"醋溜白菜,是北方人經(jīng)常吃的一道菜,尤其是在多年前的冬天。那時,沒有大棚菜,冬天,家家每天佐餐的基本上都是冬儲大白菜,聰明的家庭主婦總是想方設(shè)法將這單調(diào)的菜變成多種菜式,于是,醋溜白菜被頻繁的端上餐桌。"

+

?

" 美食不分貴賤,用最平凡的原料、最簡單的調(diào)料和最普通的手法做出美味的菜肴來才是美食的真諦。"

+

?

" 這次,我做的醋溜白菜,近似魯菜的做法,使個這道菜酸甜濃郁、開胃下飯、老少咸宜。"

,

"pic"

:

"http://api.jisuapi.com/recipe/upload/20160719/115138_46688.jpg"

,

"tag"

:

"減肥,家常菜,排毒,補鈣"

,

"material"

: [

{

"mname"

:

"油"

,

"type"

:

"0"

,

"amount"

:

"適量"

},

{

"mname"

:

"鹽"

,

"type"

:

"0"

,

"amount"

:

"適量"

},

{

"mname"

:

"花椒"

,

"type"

:

"0"

,

"amount"

:

"適量"

},

{

"mname"

:

"干紅椒"

,

"type"

:

"0"

,

"amount"

:

"適量"

},

{

"mname"

:

"蔥"

,

"type"

:

"0"

,

"amount"

:

"適量"

},

{

"mname"

:

"姜"

,

"type"

:

"0"

,

"amount"

:

"適量"

},

{

"mname"

:

"蒜"

,

"type"

:

"0"

,

"amount"

:

"適量"

},

{

"mname"

:

"醋"

,

"type"

:

"0"

,

"amount"

:

"適量"

},

{

"mname"

:

"醬油"

,

"type"

:

"0"

,

"amount"

:

"適量"

},

{

"mname"

:

"糖"

,

"type"

:

"0"

,

"amount"

:

"適量"

},

{

"mname"

:

"淀粉"

,

"type"

:

"0"

,

"amount"

:

"適量"

},

{

"mname"

:

"白菜"

,

"type"

:

"1"

,

"amount"

:

"380g"

}

],

"process"

: [

{

"pcontent"

:

"準(zhǔn)備食材。"

,

"pic"

:

"http://api.jisuapi.com/recipe/upload/20160719/162550_84583.jpg"

},

{

"pcontent"

:

"將白菜斜刀片成薄片。"

,

"pic"

:

"http://api.jisuapi.com/recipe/upload/20160719/162551_90620.jpg"

},

{

"pcontent"

:

"片切好的白菜幫與菜葉分別入好。"

,

"pic"

:

"http://api.jisuapi.com/recipe/upload/20160719/162551_20925.jpg"

},

{

"pcontent"

:

"鹽、糖、生抽、醋淀粉加少許水調(diào)勻備用。"

,

"pic"

:

"http://api.jisuapi.com/recipe/upload/20160719/162552_23125.jpg"

},

{

"pcontent"

:

"鍋中油燒熱,先入花椒炒香后撈出。再加入干紅椒段略炒。"

,

"pic"

:

"http://api.jisuapi.com/recipe/upload/20160719/162552_57046.jpg"

},

{

"pcontent"

:

"加入蔥姜蒜煸炒香,然后入白菜幫翻炒。"

,

"pic"

:

"http://api.jisuapi.com/recipe/upload/20160719/162553_89090.jpg"

},

{

"pcontent"

:

"炒至菜幫變軟時,加入白菜葉。"

,

"pic"

:

"http://api.jisuapi.com/recipe/upload/20160719/162553_40445.jpg"

},

{

"pcontent"

:

"快速翻炒至菜軟,勾入碗汁"

,

"pic"

:

"http://api.jisuapi.com/recipe/upload/20160719/162554_92210.jpg"

},

{

"pcontent"

:

"使湯汁均勻的包裹在菜幫上即可"

,

"pic"

:

"http://api.jisuapi.com/recipe/upload/20160719/162554_29522.jpg"

}

]

}

}

2.創(chuàng)建相應(yīng)的對象

?

/*

* Copyright (c) 2021 JianGuo Device Co., Ltd.

* Licensed under the Apache License, Version 2.0 (the "License");

* you may not use this file except in compliance with the License.

* You may obtain a copy of the License at

*

* http://www.apache.org/licenses/LICENSE-2.0

*

* Unless required by applicable law or agreed to in writing, software

* distributed under the License is distributed on an "AS IS" BASIS,

* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

* See the License for the specific language governing permissions and

* limitations under the License.

*/

?

import

{

CookDetailData

}

from

'./cookDetailModel'

;

export

class

CookModel

{

charge

: string

//返回說明

code

: number

//返回碼,1000為查詢成功

msg

: string

//

result

: {

result

: CookModel7

// 笑話

status

: number

//數(shù)量

msg

: string

// ok

}

}

export

class

CookModel7

{

num

: string

//頻道

list

: CookDetailData

//

}

?

?

/*

* Copyright (c) 2021 JianGuo Device Co., Ltd.

* Licensed under the Apache License, Version 2.0 (the "License");

* you may not use this file except in compliance with the License.

* You may obtain a copy of the License at

*

* http://www.apache.org/licenses/LICENSE-2.0

*

* Unless required by applicable law or agreed to in writing, software

* distributed under the License is distributed on an "AS IS" BASIS,

* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

* See the License for the specific language governing permissions and

* limitations under the License.

*/

import { MaterialData } from './materialModel';

import { ProcessData } from './processModel';

export class CookDetailData {

name: string //

peoplenum: string //

cookingtime: string //

content: string //

pic: string //

tag: string //

material: Array

process: Array

}

參考文檔

Text

尺寸設(shè)置

邊框設(shè)置

RichText

Web

項目地址

https://gitee.com/jianguo888/nut-recipes

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

    關(guān)注

    0

    文章

    11

    瀏覽量

    13761
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3548

    瀏覽量

    15743
收藏 人收藏

    評論

    相關(guān)推薦

    基于eTS的HamronyOS應(yīng)用開發(fā)

    隨著HarmonyOS 3.0 Beta版的發(fā)布,API Version 8新增了大批JS/eTS API接口,相信很多開發(fā)者已經(jīng)迫不及待想體驗基于eTS的HamronyOS應(yīng)用開發(fā)。
    的頭像 發(fā)表于 07-15 09:20 ?1889次閱讀
    基于<b class='flag-5'>eTS</b>的HamronyOS應(yīng)用<b class='flag-5'>開發(fā)</b>

    基于ArkUI eTS開發(fā)堅果笑話(NutJoke)

    ? 都說笑一笑十年少,確實,在生活中,我們也是很久沒有笑了,那么今天,我就做一個鴻蒙eTS版的堅果笑話App, 實現(xiàn)的功能: 獲取接口數(shù)據(jù) 笑話列表 笑話詳情頁 你能學(xué)到的有: 網(wǎng)絡(luò)請求 可滾動組件
    的頭像 發(fā)表于 08-19 09:59 ?1199次閱讀

    鴻蒙開發(fā)【應(yīng)用開發(fā)基礎(chǔ)知識】

    通過OpenHarmony提供的Stage模型和ArkUIeTS聲明式開發(fā)規(guī)范,結(jié)合簡單的Demo,分享學(xué)習(xí)OpenHarmony/docs/application-dev
    的頭像 發(fā)表于 01-29 18:46 ?1211次閱讀
    鴻蒙<b class='flag-5'>開發(fā)</b>【應(yīng)用<b class='flag-5'>開發(fā)</b>基礎(chǔ)知識】

    鴻蒙開發(fā)ArkUI-X基礎(chǔ)知識:【ArkUI跨平臺設(shè)計總體說明】

    本文檔描述ArkUI開發(fā)框架跨平臺運行能力相關(guān)的總體技術(shù)方案。
    的頭像 發(fā)表于 05-24 15:41 ?1256次閱讀
    鴻蒙<b class='flag-5'>開發(fā)</b><b class='flag-5'>ArkUI</b>-X基礎(chǔ)知識:【<b class='flag-5'>ArkUI</b>跨平臺設(shè)計總體說明】

    課程預(yù)告丨12月15日官方直播帶你領(lǐng)略ArkUI的聲明式開發(fā)范式之美

    方舟開發(fā)框架(ArkUI)的聲明式開發(fā)范式有什么優(yōu)勢?Java/JS/eTS(extended TypeScript)三種語言,用哪種語言更好?12月15日 19:00-20:30,H
    發(fā)表于 12-10 17:52

    100行代碼實現(xiàn)HarmonyOS“畫圖”應(yīng)用,eTS開發(fā)走起!

    式UI框架——方舟開發(fā)框架(ArkUI)。ArkUI框架引入了基于TS擴展的聲明式開發(fā)范式,讓開發(fā)變得更加簡潔、高效! 已經(jīng)有很多
    發(fā)表于 03-30 14:28

    全面支持JS/eTS應(yīng)用開發(fā),DevEco Studio 3.0 Beta4新版本發(fā)布

    新版本主要支持在HarmonyOS 3.0 Beta版上開發(fā)JS/eTS應(yīng)用及服務(wù),同時還增強了低代碼開發(fā)、預(yù)覽器和編輯器的能力,優(yōu)化了信息中心體驗。升級方式:**建議您從官網(wǎng)下載安裝包進(jìn)行全量升級
    發(fā)表于 07-08 14:29

    全面支持JS/eTS應(yīng)用開發(fā),DevEco Studio 3.0 Beta4新版本發(fā)布

    新版本主要支持在HarmonyOS 3.0 Beta版上開發(fā)JS/eTS應(yīng)用及服務(wù),同時還增強了低代碼開發(fā)、預(yù)覽器和編輯器的能力,優(yōu)化了信息中心體驗。升級方式:建議您從官網(wǎng)下載安裝包進(jìn)行全量升級
    發(fā)表于 07-11 17:37

    基于ETS開發(fā)范式制作Loading組件

    最近剛接觸基于 OpenHarmony 開源框架的應(yīng)用開發(fā),特別是基于 JS/ETS 開發(fā)范式。
    的頭像 發(fā)表于 04-12 08:56 ?1247次閱讀

    OpenHarmony應(yīng)用開發(fā)ETS開發(fā)方式Image組件

    今天帶大家了解ETS開發(fā)方式中的Image組件
    的頭像 發(fā)表于 07-03 12:06 ?3315次閱讀
    OpenHarmony應(yīng)用<b class='flag-5'>開發(fā)</b>之<b class='flag-5'>ETS</b><b class='flag-5'>開發(fā)</b>方式Image組件

    玩嗨OpenHarmony:基于OpenHarmony的ArkUI翻頁時鐘

    設(shè)備,用電腦動畫的方式實現(xiàn)翻頁時鐘,也是一種特別的復(fù)古UI交互體驗。 本項目豈在通過OpenHarmony的ArkUI框架,用TS擴展的聲明式開發(fā)范式eTS,來實現(xiàn)翻頁時鐘的體驗。 本項目的
    的頭像 發(fā)表于 12-05 20:15 ?1174次閱讀

    ArkUI新能力,助力應(yīng)用開發(fā)更便捷

    作者:niulihua,華為ArkUI技術(shù)專家;wanglei,華為ArkUI技術(shù)專家 ArkUI是一套構(gòu)建分布式應(yīng)用的聲明式UI開發(fā)框架。它具備簡潔自然的UI信息語法、豐富的UI組件
    的頭像 發(fā)表于 02-15 16:35 ?797次閱讀

    鴻蒙ArkUI開發(fā)-Tabs組件的使用

    鴻蒙ArkUI開發(fā)-Tabs組件的使用
    的頭像 發(fā)表于 01-19 16:01 ?1418次閱讀
    鴻蒙<b class='flag-5'>ArkUI</b><b class='flag-5'>開發(fā)</b>-Tabs組件的使用

    鴻蒙ArkUI開發(fā)實戰(zhàn):eTS版【笑話app】

    制作一款笑話app,使用ArkUI。
    的頭像 發(fā)表于 03-25 16:04 ?344次閱讀
    鴻蒙<b class='flag-5'>ArkUI</b><b class='flag-5'>開發(fā)</b>實戰(zhàn):<b class='flag-5'>eTS</b>版【笑話app】

    鴻蒙ArkUI-X跨平臺技術(shù):【開發(fā)準(zhǔn)備】

    本文檔適用于ArkUI跨平臺應(yīng)用開發(fā)的初學(xué)者。通過開發(fā)環(huán)境搭建、應(yīng)用工程創(chuàng)建、編譯和運行,熟悉ArkUI跨平臺應(yīng)用開發(fā)基本流程。
    的頭像 發(fā)表于 05-24 10:40 ?306次閱讀
    鴻蒙<b class='flag-5'>ArkUI</b>-X跨平臺技術(shù):【<b class='flag-5'>開發(fā)</b>準(zhǔn)備】