91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

鴻蒙開發(fā)實(shí)戰(zhàn)-OpenHarmony之天氣應(yīng)用

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-01-24 18:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

“天氣之子”

功能描述:

通過請(qǐng)求免費(fèi)API獲取指定城市七天內(nèi)相關(guān)天氣信息

開發(fā)環(huán)境:

IDE:DEV ECO 4.0.600

SDK:4.0.10.15

開發(fā)板:DAYU200 4.0.10.16

開發(fā)過程

一. 創(chuàng)建項(xiàng)目,調(diào)試環(huán)境

1.創(chuàng)建項(xiàng)目

#星計(jì)劃#OpenHarmony開發(fā)天氣查詢應(yīng)用_OpenHarmony

2.選擇OpenHarmony、API10

#星計(jì)劃#OpenHarmony開發(fā)天氣查詢應(yīng)用_OpenHarmony_02

3.連網(wǎng)條件下加載依賴

#星計(jì)劃#OpenHarmony開發(fā)天氣查詢應(yīng)用_ArkUI_03

4.在開發(fā)板上簽名,運(yùn)行HelloWorld測(cè)試環(huán)境

直接運(yùn)行,然后點(diǎn)擊log報(bào)錯(cuò)直達(dá)簽名

在工具欄File/Project Structure/Signing Configs,勾選Automatically generate簽名;運(yùn)行HelloWorld。

二.修改圖標(biāo)和名稱

1.設(shè)置-應(yīng)用管理頁面

AppScope/app.json5中查看相關(guān)配置

2.桌面

src/main/module.json5中查看相關(guān)配置

最終效果:

#星計(jì)劃#OpenHarmony開發(fā)天氣查詢應(yīng)用_ArkUI_04

#星計(jì)劃#OpenHarmony開發(fā)天氣查詢應(yīng)用_OpenHarmony_05

三.添加網(wǎng)絡(luò)權(quán)限

因?yàn)樾枰玫骄W(wǎng)絡(luò)數(shù)據(jù),所以添加initent權(quán)限。

在src/main/module.json5的model中添加配置。

"requestPermissions": [{
      "name": "ohos.permission.INTERNET"
    }],

四.自定義Model

在ets中新建model文件夾,建立ArkTS文件,基于API返回結(jié)果結(jié)合需要自定義類
API返回結(jié)果:
#星計(jì)劃#OpenHarmony開發(fā)天氣查詢應(yīng)用_OpenHarmony_06

源碼如下

export class Item{
  name:string = "紫外線強(qiáng)度指數(shù)"
  level:string = "中等"
  // code:string = "uv"
}

export class Result1{//每1天
  city:string = '徐州'
  date:Date = new Date
  temp_day:number = 4
  temp_night:number = -1
  wea_day:string = "晴"
  wea_night:string = '晴'
  wind_day:string = "南風(fēng)"
  wind_night:string = "南風(fēng)"
  wind_day_level:string = "< 3級(jí)"
  wind_night_level:string = "< 3級(jí)"
  air_level:string = "輕度"
  sunrise:string = "07:17"
  sunset:string = "17:19"
  index:Array< Item > = []//建議
}

export class Result0{
  code:number = 200
  msg:string = 'success'
  data:Array< Result1 > = []//7天
}

五.制作index頁面、請(qǐng)求網(wǎng)絡(luò)數(shù)據(jù)

1.請(qǐng)求網(wǎng)絡(luò)數(shù)據(jù)

1.導(dǎo)入http模塊

import http from '@ohos.net.http';
import { BusinessError } from '@ohos.base';

2.創(chuàng)建createHttp

let httpRequest = http.createHttp();

3.填寫HTTP地址

httpRequest.request(// 填寫HTTP請(qǐng)求的URL地址,可以帶參數(shù)也可以不帶參數(shù)。URL地址需要開發(fā)者自定義。請(qǐng)求的參數(shù)可以在extraData中指定
      "https://v2.alapi.cn/api/tianqi/seven",
      {
        method: http.RequestMethod.GET, // 可選,默認(rèn)為http.RequestMethod.GET
        // // 開發(fā)者根據(jù)自身業(yè)務(wù)需要添加header字段
        header: [{
          'Content-Type': 'application/json'
        }],
        // 當(dāng)使用POST請(qǐng)求時(shí)此字段用于傳遞內(nèi)容
        extraData: {
          "token": "自己的token",
          "type": "all",
          "format": "json"
        },
   
      }, (err: BusinessError, data: http.HttpResponse) = > {
 
    }
    );

4.對(duì)網(wǎng)絡(luò)數(shù)據(jù)的處理

if (!err) {
        let result:Result0 = JSON.parse(data.result.toString())
        if(result.code == 200){
          this.a = result.data
        }
        else {
          this.message = result.msg
        }
        httpRequest.destroy();
      } else {
        this.message = JSON.stringify(err)
        // console.error('error:' + JSON.stringify(err));
        // 當(dāng)該請(qǐng)求使用完畢時(shí),調(diào)用destroy方法主動(dòng)銷毀
        httpRequest.destroy();
      }

完整代碼:

GetData(city:string) {
  // 3.每一個(gè)httpRequest對(duì)應(yīng)一個(gè)HTTP請(qǐng)求任務(wù),不可復(fù)用
  let httpRequest = http.createHttp();
  // 4.
  httpRequest.request(// 填寫HTTP請(qǐng)求的URL地址,可以帶參數(shù)也可以不帶參數(shù)。URL地址需要開發(fā)者自定義。請(qǐng)求的參數(shù)可以在extraData中指定
    "https://v2.alapi.cn/api/tianqi/seven",
    {
      method: http.RequestMethod.GET, // 可選,默認(rèn)為http.RequestMethod.GET
      extraData: {
        "token": "自己的token",
        "city":city,
      },
    },
    (err: BusinessError, data: http.HttpResponse) = > {
      if (!err) {
        let result:Result0 = JSON.parse(data.result.toString())
        if(result.code == 200){
          this.a = result.data
        }
        else {
          this.message = result.msg
        }
        httpRequest.destroy();
      } else {
        this.message = JSON.stringify(err)
        // console.error('error:' + JSON.stringify(err));
        // 當(dāng)該請(qǐng)求使用完畢時(shí),調(diào)用destroy方法主動(dòng)銷毀
        httpRequest.destroy();
      }
    }
  )
}

如果顯示2300006錯(cuò)誤碼,很可能是網(wǎng)絡(luò)問題

2.制作UI

1.文本輸入框

TextInput({
      placeholder:"請(qǐng)輸入查詢城市名,如:徐州",
    }).onChange((item:string)= >{
      if(item!=null && item!=undefined){
        this.message = item
      }
    }).maxLength(8).type(InputType.Normal)

2.“查詢”按鈕:點(diǎn)擊頁面進(jìn)行跳轉(zhuǎn)到列表頁

Button("查詢").onClick(()= >{
      this.GetData(this.message)
      //跳轉(zhuǎn)
      if(this.a!=null && this.a!=undefined && this.a.length >0){
        router.pushUrl({
          url:"pages/ListPage",
          params:this.a
        })
      }
      else{
        promptAction.showToast({message:"請(qǐng)重試~"})//數(shù)據(jù)請(qǐng)求失敗
      }
    }).backgroundColor(Color.Transparent).width("50%")

最終界面:
#星計(jì)劃#OpenHarmony開發(fā)天氣查詢應(yīng)用_ArkUI_07

六.制作列表頁(跳轉(zhuǎn)到的第二張頁面)

先看最終效果:
#星計(jì)劃#OpenHarmony開發(fā)天氣查詢應(yīng)用_ArkUI_08

1.自定義組件

#星計(jì)劃#OpenHarmony開發(fā)天氣查詢應(yīng)用_ArkUI_09

Component裝飾器修飾 ,定義struct,并且用關(guān)鍵字export導(dǎo)出

@Component
export struct ALine{//日期 天氣圖片 詳情跳轉(zhuǎn)
  @State date:Date = new Date
  @State wea:string = '晴'

  build(){
    Row(){
      Text(this.date.toString()).fontSize(25).fontWeight(FontWeight.Bold).margin({right:240}).fontColor(Color.White)

      Text("(白天)"+this.wea).fontColor(Color.White)

      Text("  >").fontWeight(FontWeight.Lighter).fontSize(30).fontColor(Color.White)
    }.width("100%").height("100%")
    .border({color:Color.Transparent}).borderRadius(14).borderWidth(3)
    .backgroundImage($r("app.media.LLBG")).backgroundImagePosition(Alignment.Center)
  }
}

2.頁面UI

1.首先接收上一頁面?zhèn)鬏敂?shù)據(jù)

@State a:Array< Result1 > = router.getParams() as Array< Result1 >

2.主要用到List,Column,Row,Text和自定義組件;利用ForEach循環(huán)渲染;每一個(gè)自定義組件綁定一個(gè)點(diǎn)擊事件,可分別跳轉(zhuǎn)到詳情頁。

源碼:

Column({space:5}){
      Text(this.a[0].city).fontSize(50).fontColor(Color.White)

      List({space:20}){
        ForEach(this.a,(item:Result1)= >{
          ListItem(){
            ALine({date:item.date,wea:item.wea_day})
              .onClick(()= >{//
                router.pushUrl({
                  url:"pages/DetailPage",
                  params:item
                })
              })
          }.height("20%").width("100%")
        })
      }.width("100%").height("100%").scrollBar(BarState.Off)
    }.backgroundImage($r("app.media.LPBG")).backgroundImageSize(ImageSize.Cover)

七.制作詳情頁(點(diǎn)擊自定義組件跳轉(zhuǎn)到的第三張頁面)

有了前面兩張頁面的基礎(chǔ),這一張可以較為順利完成,故不再贅述。

最終效果:
#星計(jì)劃#OpenHarmony開發(fā)天氣查詢應(yīng)用_ArkUI_10

本文主要是對(duì)鴻蒙開發(fā)中的實(shí)戰(zhàn)講解,制作天氣應(yīng)用原生開發(fā)。有關(guān)更多的實(shí)戰(zhàn)學(xué)習(xí),可以往主頁閱讀更多;鴻蒙的技術(shù)分布內(nèi)容有如下:

高清完整或者實(shí)戰(zhàn)文檔,可以找我保存

八.總結(jié)

此項(xiàng)目主要練習(xí)了:

  1. List,Column,Row,Text,Divider,Image,promptAction等組件及其屬性
  2. 網(wǎng)絡(luò)數(shù)據(jù)請(qǐng)求
  3. 頁面跳轉(zhuǎn)及傳輸數(shù)據(jù)
  4. 自定義組件
  5. 自定義類
  6. 做自己喜歡的UI

審核編輯 黃宇

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

    關(guān)注

    2

    文章

    2380

    瀏覽量

    66807
  • OpenHarmony
    +關(guān)注

    關(guān)注

    33

    文章

    3954

    瀏覽量

    21125
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    OpenHarmony開發(fā)開源資料!凌蒙派-RK3568開發(fā)板:從入門到實(shí)戰(zhàn)的全棧硬件平臺(tái)

    隨著 OpenHarmony 生態(tài)的持續(xù)壯大,越來越多開發(fā)者投身于鴻蒙硬件開發(fā) —— 但 “找板難、入門繁、案例少” 的問題,卻成了不少人的 “開局絆腳石”。今天要給大家推薦的,正是一
    的頭像 發(fā)表于 02-05 13:56 ?351次閱讀
    <b class='flag-5'>OpenHarmony</b><b class='flag-5'>開發(fā)</b>開源資料!凌蒙派-RK3568<b class='flag-5'>開發(fā)</b>板:從入門到<b class='flag-5'>實(shí)戰(zhàn)</b>的全棧硬件平臺(tái)

    M4-R1 開源鴻蒙(OpenHarmory)開發(fā)板丨串口調(diào)試助手實(shí)戰(zhàn)案例

    前言開源鴻蒙OpenHarmony)作為國產(chǎn)分布式操作系統(tǒng),正在為智能終端與物聯(lián)網(wǎng)設(shè)備構(gòu)建統(tǒng)一的開放生態(tài)。它以開源共建的方式,為多設(shè)備協(xié)同與產(chǎn)業(yè)創(chuàng)新提供堅(jiān)實(shí)基礎(chǔ)。M4-R1開發(fā)板憑借完善的軟硬件
    的頭像 發(fā)表于 12-31 11:16 ?8667次閱讀
    M4-R1 開源<b class='flag-5'>鴻蒙</b>(OpenHarmory)<b class='flag-5'>開發(fā)</b>板丨串口調(diào)試助手<b class='flag-5'>實(shí)戰(zhàn)</b>案例

    觸覺智能Purple Pi OH開發(fā)板率先適配OpenHarmony6.0 Release,鴻蒙明星開發(fā)

    2025年9月19日,在官網(wǎng)上線開源鴻蒙OpenHarmony6.0Release僅13天,觸覺智能宣布旗下PurplePiOH開發(fā)板成功完成OpenHarmony6.0Release
    的頭像 發(fā)表于 10-29 08:00 ?836次閱讀
    觸覺智能Purple Pi OH<b class='flag-5'>開發(fā)</b>板率先適配<b class='flag-5'>OpenHarmony</b>6.0 Release,<b class='flag-5'>鴻蒙</b>明星<b class='flag-5'>開發(fā)</b>板

    觸覺智能RK3576開發(fā)OpenHarmony開源鴻蒙系統(tǒng)USB控制傳輸功能示例

    本文介紹OpenHarmony開源鴻蒙系統(tǒng)的USB控制傳輸功能實(shí)現(xiàn)及相關(guān)代碼示例,基于觸覺智能RK3576開發(fā)板PurplePiOH2演示。OpenHarmony的USB通信介紹實(shí)現(xiàn)
    的頭像 發(fā)表于 09-30 16:31 ?1583次閱讀
    觸覺智能RK3576<b class='flag-5'>開發(fā)</b>板<b class='flag-5'>OpenHarmony</b>開源<b class='flag-5'>鴻蒙</b>系統(tǒng)USB控制傳輸功能示例

    觸覺智能RK3506開發(fā)板通過OpenHarmony 5.1 XTS認(rèn)證,引領(lǐng)鴻蒙開發(fā)新標(biāo)桿!

    觸覺智能作為瑞芯微專業(yè)方案商與開源鴻蒙南向硬件廠家,旗下RK3506開發(fā)板及其核心板(模組)通過OpenHarmony5.1XTS認(rèn)證!這一消息猶在行業(yè)內(nèi)引起了廣泛關(guān)注,標(biāo)志著觸覺智能在鴻蒙
    的頭像 發(fā)表于 08-14 23:49 ?1737次閱讀
    觸覺智能RK3506<b class='flag-5'>開發(fā)</b>板通過<b class='flag-5'>OpenHarmony</b> 5.1 XTS認(rèn)證,引領(lǐng)<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>新標(biāo)桿!

    開鴻開發(fā)板深度體驗(yàn):從開源鴻蒙開發(fā)到AI場(chǎng)景實(shí)踐

    的KaihongBoard-3588S-SBC和KaihongBoard-3576-SBC被評(píng)為“2025OpenHarmony明星開發(fā)板”,可實(shí)現(xiàn)設(shè)備快速開源鴻蒙化升級(jí)、分布式互聯(lián)協(xié)同、彈性部署等能力。
    的頭像 發(fā)表于 07-03 17:03 ?1641次閱讀
    開鴻<b class='flag-5'>開發(fā)</b>板深度體驗(yàn):從開源<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>到AI場(chǎng)景實(shí)踐

    鴻蒙5開發(fā)寶藏案例分享---一多開發(fā)實(shí)例(音樂)

    各位開發(fā)者小伙伴們好呀!今天咱們來點(diǎn)硬核干貨!最近在鴻蒙文檔中心挖到一座“金礦”——官方竟然暗藏了100+實(shí)戰(zhàn)案例,從分布式架構(gòu)到交互動(dòng)效優(yōu)化應(yīng)有盡有!這些案例不僅藏著華為工程師的私房技巧,還直接
    的頭像 發(fā)表于 06-30 11:54 ?779次閱讀

    鴻蒙5開發(fā)寶藏案例分享---埋點(diǎn)開發(fā)實(shí)戰(zhàn)指南

    鴻蒙埋點(diǎn)開發(fā)寶藏指南:官方案例實(shí)戰(zhàn)解析,輕松搞定數(shù)據(jù)追蹤! 大家好呀!我是HarmonyOS開發(fā)路上的探索者。最近在折騰應(yīng)用埋點(diǎn)時(shí),意外發(fā)現(xiàn)了鴻蒙
    發(fā)表于 06-12 16:30

    開源鴻蒙開發(fā)必備!OpenHarmony替換Full SDK全攻略

    本文介紹開源鴻蒙OpenHarmony替換FullSDK的方法,演示設(shè)備為觸覺智能PurplePiOH鴻蒙開發(fā)板獲取FullSD
    的頭像 發(fā)表于 06-06 18:11 ?865次閱讀
    開源<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>必備!<b class='flag-5'>OpenHarmony</b>替換Full SDK全攻略

    觸覺智能鴻蒙開發(fā)板率先通過OpenHarmony5.0認(rèn)證(生態(tài)產(chǎn)品兼容性證書)

    觸覺智能PurplePiOH鴻蒙開發(fā)板繼4.1版本XTS認(rèn)證火速出圈后,再次狂飆!成功通過OpenHarmony5.0ReleaseXTS認(rèn)證,成為首批開放原子基金會(huì)生態(tài)產(chǎn)品之一。這一認(rèn)證標(biāo)志著其在
    的頭像 發(fā)表于 06-06 17:54 ?1280次閱讀
    觸覺智能<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>板率先通過<b class='flag-5'>OpenHarmony</b>5.0認(rèn)證(生態(tài)產(chǎn)品兼容性證書)

    全志科技亮相OpenHarmony開發(fā)者大會(huì)2025

    近日,OpenHarmony開發(fā)者大會(huì) 2025(OHDC.2025,以下簡(jiǎn)稱“大會(huì)”)在深圳舉辦。大會(huì)正式發(fā)布了開源鴻蒙5.1 Release版本,舉行了“開源鴻蒙應(yīng)用技術(shù)組件共建啟
    的頭像 發(fā)表于 06-04 09:16 ?2221次閱讀
    全志科技亮相<b class='flag-5'>OpenHarmony</b><b class='flag-5'>開發(fā)</b>者大會(huì)2025

    貝啟BQ3568HM 開發(fā)板被選用為 OpenHarmony 明星開發(fā)

    經(jīng)開放原子開源基金會(huì)OpenHarmony社區(qū)官方測(cè)評(píng)評(píng)選,貝啟科技BQ3568HM開源鴻蒙開發(fā)板被正式選用為OpenHarmony明星開發(fā)
    的頭像 發(fā)表于 05-25 00:22 ?1471次閱讀
    貝啟BQ3568HM <b class='flag-5'>開發(fā)</b>板被選用為 <b class='flag-5'>OpenHarmony</b> 明星<b class='flag-5'>開發(fā)</b>板

    DialogHub上線OpenHarmony開源社區(qū),高效開發(fā)鴻蒙應(yīng)用彈窗

    作為鴻蒙應(yīng)用開發(fā)者,在使用ArkUI現(xiàn)有能力進(jìn)行彈窗開發(fā)時(shí),總會(huì)遇到一些讓人糾結(jié)的交互問題:應(yīng)用內(nèi)進(jìn)行消息提示時(shí),既要求消息內(nèi)容支持圖文混排,又要求彈窗本身不能打斷用戶交互(頁面滑動(dòng)、頁面
    發(fā)表于 04-03 17:30

    鴻蒙北向開發(fā)OpenHarmony5.0 DevEco Studio開發(fā)工具安裝與配置

    本文介紹OpenHarmony5.0 DevEco Studio開發(fā)工具安裝與配置,鴻蒙北向開發(fā)入門必備!由觸覺智能Purple Pi OH鴻蒙
    的頭像 發(fā)表于 03-28 18:05 ?1647次閱讀
    <b class='flag-5'>鴻蒙</b>北向<b class='flag-5'>開發(fā)</b><b class='flag-5'>OpenHarmony</b>5.0 DevEco Studio<b class='flag-5'>開發(fā)</b>工具安裝與配置

    【北京迅為】iTOP-RK3568開發(fā)鴻蒙OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開發(fā)實(shí)操-HDF驅(qū)動(dòng)配置UART

    【北京迅為】iTOP-RK3568開發(fā)鴻蒙OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開發(fā)實(shí)操-HDF驅(qū)動(dòng)配置UART
    的頭像 發(fā)表于 03-25 11:02 ?1740次閱讀
    【北京迅為】iTOP-RK3568<b class='flag-5'>開發(fā)</b>板<b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>系統(tǒng)南向驅(qū)動(dòng)<b class='flag-5'>開發(fā)</b>實(shí)操-HDF驅(qū)動(dòng)配置UART