国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

在HarmonyOS中實現天氣服務功能

系統 OpenHarmony
在本案例中,實現天氣服務的功能需要聚合數據平臺提供的天氣預報云服務。開發者需要在聚合數據平臺注冊和登錄賬號,然后申請天氣預報的API,并通過實名認證獲取自己的Key。通過Key,我們就可以通過http數據請求的方式調用天氣預報的API,而官方會為每名開發者提供50次的每日免費調用次數。

想了解更多關于開源的內容,請訪問:

51CTO 開源基礎軟件社區

https://ost.51cto.com

介紹

本案例通過調用云端的天氣服務API,在HarmonyOS中實現天氣服務功能。開發者們可根據不同業務場景,在本案例的基礎上集成自己的天氣服務管理者模塊。

開發環境要求

 DevEco Studio版本:DevEco Studio 3.1 Release

● HarmonyOS SDK版本:API version 9

工程要求

  • API9
  •  Stage模型

正文

前置條件

在本案例中,實現天氣服務的功能需要聚合數據平臺提供的天氣預報云服務。開發者需要在聚合數據平臺注冊和登錄賬號,然后申請天氣預報的API,并通過實名認證獲取自己的Key。通過Key,我們就可以通過http數據請求的方式調用天氣預報的API,而官方會為每名開發者提供50次的每日免費調用次數。

代碼結構

entry/src/main
  ├─ module.json5    		//模塊的配置文件
  ├─ resources        		//資源文件集
  └─ ets
     ├─ XL_Modules      
     │  └─ XL_WeatherServiceManager.ts       //天氣服務管理者ts模塊
     ├─ pages
     │  └─ Index.ets			//主頁面
     └─ entryability
          └─ EntryAbility.ts     //UIAbility類

關鍵代碼

XL_WeatherServiceManager.ts:

//導入http模塊
import http from '@ohos.net.http'

//定義日志標簽
const TAG1 = '------[XL_WeatherServiceManager  inquire] '

//提供云服務接口的網址片段
const Weather_Url_Part:string = "http://apis.juhe.cn/simpleWeather/query?key="

//開發者在聚合數據的請求Key(需要自行填入)
const key:string = ......

//聲明一個專用于記錄天氣信息的數據類型
declare type RealTime_Weather_Result = {

  //實時數據
  realtime: any,

  //今日整體數據
  today:any,

  //是否成功拉取
  isFinished: boolean

}

/*
  異步函數: 獲取對應城市的天氣數據
 */
async function Pull_Weather_Data(cityName: string, Tag: string):Promise<RealTime_Weather_Result>{
	
  //預定義輸出
  var output = {
    realtime: null,
    today: null,
    isFinished: false
  }

  //實例化一個http請求任務類
  let httpRequest = http.createHttp();

	//拼接url,以供訪問服務器
  let URL = Weather_Url_Part+key+'&city='+cityName

  //調用異步方法request
  await httpRequest.request(
    URL,
    {
      //設置請求方法的類型
      method: http.RequestMethod.GET,
    }).then((data) => {

    //提取http響應的關鍵內容
    let Weather_Info = JSON.parse(data.result.toString())
	
    //當關鍵內容中所攜帶的錯誤碼為0時,表示成功拉取了天氣數據
    if(Weather_Info?.error_code == 0){

      console.info(TAG1+'Succeed! Obtain the weather data')
      
      //在日志欄打印天氣信息
      console.info(TAG1+JSON.stringify(Weather_Info?.result?.realtime))
      console.info(TAG1+JSON.stringify(Weather_Info?.result?.future[0]))
			
      //存取天氣信息
      output.realtime = Weather_Info?.result?.realtime
      output.today = Weather_Info?.result?.future[0]
      
      output.isFinished = true

    }else{
      console.error(Tag+Weather_Info?.reason)
    }

  }).catch(err => console.error(Tag + 'Http request failed, err:  ' + `${err}`))

  //銷毀http任務類
  httpRequest.destroy()

	//輸出
  return output

}


//默認導出的靜態型模塊類
class XL_WeatherServiceManager {

  //查詢某城市天氣的方法
  public static async inquire(cityName: string):Promise<RealTime_Weather_Result>{
    return await Pull_Weather_Data(cityName, TAG1)
  }
	
  /*
   *  敬請期待
   */
  
}

export default XL_WeatherServiceManager

在XL_WeatherServiceManager.ts中,我們通過http請求的方式,獲取并解析服務器所回饋的天氣預報信息。值得一提的是,我們創建了類XL_WeatherServiceManager,此類有個靜態公共方法inquire調用了拉取天氣信息的異步函數,并且XL_WeatherServiceManager是默認導出的。因此,我們可以在頁面中導入XL_WeatherServiceManager,并通過執行require方法調用獲取天氣信息的功能。

import XL_WeatherServiceManager from  'ets/XL_Modules/XL_WeatherServiceManager'

......
let result = await XL_WeatherServiceManager.inquire('北京')
......

在頁面中調用

Index.ets(偽代碼):

//導入自定義的天氣服務管理模塊
import XL_WeatherServiceManager from  'ets/XL_Modules/XL_WeatherServiceManager'

@Entry
@Component
struct Index {

  @State message: string = 'Hello World'

  @State cityName:string = ''
  @State currentTemperature:string = ''
  @State currentWeather:string = ''
  @State todayTemperature:string = ''
  @State translateY:number = 700

  build() {

 				......
				
        Search({
          placeholder: '請輸入城市名'
        })
        //添加回調函數
          .onSubmit((cityName:string)=>{
            this.Search(cityName)
          })
          ......
          
				......
       
    }

	//自定義異步方法
  async Search(cityName:string){
		
    //通過天氣服務管理者調用inquire方法,并傳入城市名參數
    let res = await XL_WeatherServiceManager.inquire(cityName)

    if(res.isFinished){
    
    	//根據需求讀取信息
      this.currentTemperature = res.realtime.temperature
      this.currentWeather = res.realtime.info
      this.todayTemperature = res.today.temperature
      
      this.cityName = cityName
      this.translateY = 0
      
    }

  }


}

想了解更多關于開源的內容,請訪問:

51CTO 開源基礎軟件社區

https://ost.51cto.com

責任編輯:jianghua 來源: 51CTO 開源基礎軟件社區
相關推薦

2022-09-01 21:56:34

KubernetesLinkerd

2009-07-09 16:12:53

WeblogicJDBC

2009-12-02 15:45:04

PHP抓取天氣預報

2021-11-26 10:08:57

鴻蒙HarmonyOS應用

2018-01-29 11:25:37

LinuxASCII 字符天氣預報

2022-07-28 14:31:04

canvas鴻蒙

2022-12-31 14:51:48

微服務Golang

2022-07-01 17:14:03

消息通知鴻蒙

2011-03-15 16:07:33

Windows AzuWCF

2024-01-02 11:15:46

Linux系統

2011-06-24 17:23:18

主服務器從服務器同步

2010-08-13 10:56:58

FlexWebservice

2023-04-25 08:01:23

JavaQuarkusKubernetes

2024-01-10 17:24:00

2016-08-11 08:24:39

AndroidIntentShareTestDe

2011-07-25 15:54:08

XCode PHP

2022-08-25 21:46:51

網絡通訊應用開發

2009-01-14 17:46:01

RHELBindDNS
點贊
收藏

51CTO技術棧公眾號

日韩中文字幕精品视频| 成人自拍在线| 91精品国产自产在线老师啪| 亚洲一区欧美一区| 爽爽窝窝午夜精品一区二区| free性亚洲| 中文字幕精品综合| 黄色一区二区三区四区| 激情aⅴ欧美一区二区欲海潮| 色噜噜一区二区| 韩日精品中文字幕| 欧美电影免费播放| 在线视频se| 999精品视频一区二区三区| 欧美探花视频资源| 国产亚洲一区在线| 亚洲电影观看| 国产超级av在线| 欧洲中文字幕国产精品| 图片区小说区区亚洲影院| 欧美电影《睫毛膏》| 日本视频在线播放| 一区二区三区一级片| 一区二区三区四区在线观看视频| 国产亚洲欧美日韩俺去了| 老司机在线精品视频| 亚洲精品视频在线免费| 久久影院理伦片| 亚洲天堂成人在线| 中文字幕精品综合| 一区二区三区网站| 久操av在线| 日韩av黄色网址| 国产精品黄色av| 欧美日韩亚洲高清一区二区| 黑人精品欧美一区二区蜜桃| 91国内精品白嫩初高生| 欧美一二三区在线| 激情久久五月天| 一本一道久久a久久| 性欧美精品孕妇| 亚洲欧美日韩在线综合 | 自拍偷拍免费精品| 国产精品久久久久婷婷二区次| 日本久久精品| 麻豆国产在线| 黄色激情网站| 日韩资源av在线| 性色av一区二区三区| 欧美日韩激情一区二区三区| 国产成人亚洲精品狼色在线| 日韩电影一区| 成人国产一区二区三区精品麻豆| 毛片毛片毛片毛片| 在线亚洲美日韩| 国产成人精品在线播放| 亚洲成人国产精品| 亚洲图片欧美视频| 久久er精品视频| 国产精品88久久久久久| 四虎4545www精品视频| 视频二区在线| 亚洲熟妇av一区二区三区| 在线日韩一区二区| 91黄视频在线观看| 精品国产乱码久久久久久浪潮| 亚洲一区二区av在线| 欧美成人高清视频| 99免费精品在线| 欧美精品91| 精品国产亚洲一区二区三区在线 | 一区二区三区精品久久久| 性欧美暴力猛交另类hd| 另类在线视频| 国产乱码午夜在线视频| 一区二区三区高清在线视频 | 欧美一级爱爱视频| 亚洲自拍偷拍在线| 欧美精品生活片| 精品毛片乱码1区2区3区| 亚洲日本在线观看| 国产成人免费在线观看| 极品日韩av| 日韩美女毛片| 亚洲人成午夜免电影费观看| 男人天堂网在线观看| 91热这里只有精品| 超级碰在线观看| 久久艳妇乳肉豪妇荡乳av| 日韩免费精品视频| 免费成人你懂的| 欧美精品vⅰdeose4hd| 亚洲欧洲在线看| 亚洲精品护士| 欧美激情图区| 天堂资源在线亚洲| 久久99精品久久久久久久久久久久 | 国产精品欧美在线| 国产成人涩涩涩视频在线观看| 国产精品久久久久久久久久直播 | 国产日韩一区二区在线观看| 中文官网资源新版中文第二页在线观看| 精品影院一区| 在线一区二区三区视频| 精品久久综合| 国产精品久久久久久亚洲伦 | 亚洲精品一区在线| 哺乳挤奶一区二区三区免费看| 欧美人体视频| 精品一区免费av| ww亚洲ww在线观看国产| 欧美性一级生活| 在线看一级片| 500福利第一精品导航| 国产二区视频在线播放| 日本视频一区在线观看| 国产精品成人一区二区三区 | 麻豆精品传媒视频| 51国产成人精品午夜福中文下载| 欧美在线国产精品| 欧美日韩国产成人在线观看| 深夜福利亚洲导航| 亚洲日韩欧美视频一区| 日韩精品欧美国产精品忘忧草| 欧美一卡2卡三卡4卡5免费| 欧美日韩免费一区| 午夜久久福利影院| 亚洲国产精品视频| 亚洲国产精品久久久久秋霞影院| 一区二区三区四区在线免费观看| 亚洲色欲色欲www在线观看| 中文字幕一区二区三区视频| 中文字幕一区在线| 亚洲女爱视频在线| 亚洲尤物在线视频观看| 亚洲精品国产视频| 亚洲精品久久久蜜桃| 亚洲福利视频三区| 欧美视频裸体精品| 欧美日韩免费高清一区色橹橹| 欧美日韩一区国产| 欧美一区2区视频在线观看| 欧美成人三级电影在线| 亚洲精品mp4| 在线精品国产成人综合| 久久久精品欧美| 97在线日本国产| 奇米影视亚洲狠狠色| 国产精品久久久久久亚洲影视| 国产精品福利观看| 91系列在线观看| 久久香蕉综合色| 五月婷婷综合色| 国产免费一区二区视频| 一区二区在线播放视频| 三级黄色网址| 免费在线看v| 自拍亚洲图区| 人在线成免费视频| 欧美啪啪网站| 一本色道久久综合狠狠躁的番外| 水蜜桃久久夜色精品一区| 欧美视频导航| 首页综合国产亚洲丝袜| av亚洲精华国产精华精| 亚洲三级在线观看| 欧美性猛交xxxxxx富婆| 日韩av中文字幕在线| 美女视频黄免费的亚洲男人天堂| 欧美怡红院视频一区二区三区| 亚洲a一级视频| 一区二区免费在线观看| 99精品视频在线看| 在线一级观看| 成人漫画网站免费| 粉嫩aⅴ一区二区三区四区五区| 久久视频在线视频| 国产鲁鲁视频在线观看免费| 久久久久99| 欧美在线视频一区二区| 中文字幕在线看视频国产欧美| 国模私拍一区二区三区| 亚洲综合日韩在线| 一区高清视频| 9l视频白拍9色9l视频| 国产黄在线看| 91亚洲精品| 99精品视频在线观看播放| 神马久久高清| 天天综合天天做天天综合| 国产h色视频在线观看| 不卡一区中文字幕| 一级黄色香蕉视频| 麻豆91在线观看| 欧美激情亚洲自拍| 亚洲奶水xxxx哺乳期| 激情欧美日韩一区二区| 福利一区二区| 精品亚洲成人| 日日摸夜夜添夜夜添精品视频|