国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【微信小程序項目】——十分鐘開發(fā)網(wǎng)絡API·天氣查詢小程序、天氣查詢,美觀簡約,簡單易上手

這篇具有很好參考價值的文章主要介紹了【微信小程序項目】——十分鐘開發(fā)網(wǎng)絡API·天氣查詢小程序、天氣查詢,美觀簡約,簡單易上手。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【實驗目的】

  1. 復習小程序項目新建過程
  2. 掌握配置https域名的方式
  3. 使用微信網(wǎng)絡請求能力獲取天氣預報
  4. 使用騰訊提供的網(wǎng)絡通信API,調用第三方提供的API

PART I 準備工作

        1. API密鑰申請(非必做

本小節(jié)主要介紹如何申請獲得開源API的密鑰。這里選擇了可以提供全球氣象數(shù)據(jù)服務接口的和風天氣API,其官方網(wǎng)址為https://www.heweather.com/(如圖1所示)。

官方網(wǎng)址現(xiàn)已改為https://www.qweather.com/

【微信小程序項目】——十分鐘開發(fā)網(wǎng)絡API·天氣查詢小程序、天氣查詢,美觀簡約,簡單易上手

?

圖1?“和風天氣”官方主頁(訪問時間:2018.10.27?10:26)

點擊“天氣API”,跳轉到https://dev.qweather.com/。用戶選擇 “免費用戶”類型然后使用郵箱進行注冊并激活后,可以獲取三天之內全球各地區(qū)的實時天氣,免費接口調用流量為1000次/天、頻率為200次/分鐘,該數(shù)據(jù)基本可以滿足讀者的開發(fā)學習需求。

注冊完畢之后,點擊“控制臺”按鈕,可以訪問https://id.qweather.com/#/login?redirect=https%3A%2F%2Fconsole.qweather.com來查看賬號信息,用戶登陸后即可看到開發(fā)者申請到的個人認證key,如圖2所示。

【微信小程序項目】——十分鐘開發(fā)網(wǎng)絡API·天氣查詢小程序、天氣查詢,美觀簡約,簡單易上手

?

圖2個人認證key查詢頁面(訪問時間:2018.10.27?10:27)

開發(fā)者需記錄上述頁面中的個人認證key,該信息在小程序發(fā)出網(wǎng)絡請求時會作為身份識別的標識一并發(fā)送給和風天氣的第三方服務器。至此,開源API的密鑰申請就已經順利完成,讀者可以進行下一節(jié)的學習,了解如何調用API獲取氣象數(shù)據(jù)。

        1. API調用方法

目前免費用戶可以調用的最新版接口地址為:https://dev.qweather.com/docs/api/weather/weather-now/,其服務器節(jié)點在中國境內。該接口地址后面追加不同的關鍵詞將獲取不同種類的氣象數(shù)據(jù)信息,例如alarm為天氣自然災害預警、讀者可以訪問官方文檔開發(fā)文檔 | 和風天氣開發(fā)平臺,以及https://dev.qweather.com/docs/api/,了解各類關鍵詞的使用方法。

本示例將選用關鍵詞weather/now進行實況天氣數(shù)據(jù)的獲取。實況天氣即為當前時間點的天氣狀況以及溫濕風壓等氣象指數(shù),具體包含的數(shù)據(jù):體感溫度、實測溫度、天氣狀況、風力、風速、風向、相對濕度、大氣壓強、降水量、能見度等。目前該接口允許查詢的城市覆蓋范圍為全球任意一個城市。

基于關鍵詞weather/now的接口具有兩個必填參數(shù)和兩個可選參數(shù),如表1所示。

表1?weather接口參數(shù)一覽表

參數(shù)名稱

參數(shù)類型

解釋

location

必填參數(shù)

用于規(guī)定需要查詢的城市??梢蕴钊氤鞘忻Q(國內城市填中文或拼音均可)、城市ID、IP地址或經緯度。

例如:

location=北京、location=beijing(城市名稱)

location=CN101010100(城市ID)

location=60.194.130.1(IP地址)

location=120.343,36.088(經緯度)

key

必填參數(shù)

需要填入用戶的個人認證key字符串。接口將通過該數(shù)據(jù)判斷是否為授權用戶,并可以進一步判斷是否為付費用戶。

例如:key=58cde137c76f44f5bc7885fc1e711aa9

lang

可選參數(shù)

用于指定數(shù)據(jù)的語言版本,不添加lang參數(shù)則默認為簡體中文。

例如:lang=en

需要注意的是,國內某些特定數(shù)據(jù)(例如生活指數(shù)、空氣質量等)不支持多語言版。

unit

可選參數(shù)

單位選擇,公制(m)或英制(i),默認為公制單位。

例如:unit=i

詳見表5-度量衡單位一覽表。

其中與unit參數(shù)相關公制和英制單位對比如表2所示。

表2?度量衡單位一覽表

數(shù)據(jù)項

公制單位

英制單位

溫度

攝氏度 ℃

華氏度 ℉

風速

公里/小時 km/h

英里/小時 mile/h

能見度

公里 km

英里 mile

大氣壓強

百帕 hPa

百帕 hPa

降水量

毫米 mm

毫米 mm

PM2.5

微克/立方米 μg/m3

微克/立方米 μg/m3

PM10

微克/立方米 μg/m3

微克/立方米 μg/m3

O3

微克/立方米 μg/m3

微克/立方米 μg/m3

SO2

微克/立方米 μg/m3

微克/立方米 μg/m3

CO

毫克/立方米 mg/m3

毫克/立方米 mg/m3

NO2

微克/立方米 μg/m3

微克/立方米 μg/m3

注:部分數(shù)據(jù)項無論選擇何種單位均會使用公制單位。

https://devapi.qweather.com/v7/weather/now?location=101010200&key=58cde137c76f44f5bc7885fc1e711aa9

開發(fā)版 https://devapi.qweather.com/v7/weather/now?location=101010100&key=你的KEY

以前強調過:音頻、視頻、圖片,若是網(wǎng)絡地址,一定要在瀏覽器中打開試一試。

現(xiàn)在又增加了一條:網(wǎng)絡服務,一定要在瀏覽器中打開試一試。

免費用戶調用接口的常見語法格式如下:

https://free-api.heweather.com/s6/weather/now?[parameters]

https://devapi.qweather.com/v7/weather/now?[請求參數(shù)]

其中[parameters]需要替換成使用到的參數(shù),多個參數(shù)之間使用&符號隔開。

https://free-api.heweather.com/s6/weather/now?location=shanghai&key=58cde137c76f44f5bc7885fc1e711aa9

????例如,使用拼音查詢上海市天氣數(shù)據(jù)的寫法如下:

https://free-api.heweather.com/s6/weather/now?location=shanghai&key=1234abcd

注:其中key的值1234abcd為隨機填寫的內容,請在實際開發(fā)中將其替換為真實的個人認證key,否則接口將無法獲取數(shù)據(jù)。key=58cde137c76f44f5bc7885fc1e711aa9。

可以直接將這段地址輸入到瀏覽器地址欄中測試數(shù)據(jù)返回結果,如圖3所示。

【微信小程序項目】——十分鐘開發(fā)網(wǎng)絡API·天氣查詢小程序、天氣查詢,美觀簡約,簡單易上手

?

圖3免費天氣查詢接口返回結果頁面(訪問時間:2018.10.27?10:59)

由上圖可見,指定城市的天氣數(shù)據(jù)返回結果是json數(shù)據(jù)格式的文本內容,其中包含的數(shù)據(jù)是以“名稱:值”的形式存放。

為方便用戶查看,將圖3返回的數(shù)據(jù)內容整理格式后如下:

{

"HeWeather6":[

{

"basic":{

"cid":"CN101020100",

"location":"上海",

"parent_city":"上海",

"admin_area":"上海",

"cnty":"中國",

"lat":"31.23170662",

"lon":"121.47264099",

"tz":"+8.00"

},

"update":{

"loc":"2018-10-27 10:45",

"utc":"2018-10-27 02:45"

},

"status":"ok",

"now":{

"cloud":"0",

"cond_code":"100",

"cond_txt":"晴",

"fl":"17",

"hum":"19",

"pcpn":"0.0",

"pres":"1024",

"tmp":"19",

"vis":"10",

"wind_deg":"315",

"wind_dir":"西北風",

"wind_sc":"1",

"wind_spd":"4"

}

}

]

}

返回的字段說明如表3所示。

表3?實況天氣返回字段說明

basic 基礎信息

參數(shù)

描述

示例值

location

地區(qū)/城市名稱

海淀

cid

地區(qū)/城市ID

CN101080402

lat

地區(qū)/城市緯度

39.956074

lon

地區(qū)/城市經度

116.310316

parent_city

該地區(qū)/城市的上級城市

北京

admin_area

該地區(qū)/城市所屬行政區(qū)域

北京

cnty

該地區(qū)/城市所屬國家名稱

中國

tz

該地區(qū)/城市所在時區(qū)

8

update 接口更新時間

參數(shù)

描述

示例值

loc

當?shù)貢r間,24小時制,格式y(tǒng)yyy-MM-dd HH:mm

2017/10/25 12:34

utc

UTC時間,24小時制,格式y(tǒng)yyy-MM-dd HH:mm

2017/10/25 4:34

now 實況天氣

參數(shù)

描述

示例值

fl

體感溫度,默認單位:攝氏度

23

tmp

溫度,默認單位:攝氏度

21

cond_code

實況天氣狀況代碼

100

cond_txt

實況天氣狀況描述

wind_deg

風向360角度

305

wind_dir

風向

西北

wind_sc

風力

3

wind_spd

風速,公里/小時

15

hum

相對濕度

40

pcpn

降水量

0

pres

大氣壓強

1020

vis

能見度,默認單位:公里

10

cloud

云量

23

status 接口狀態(tài)

參數(shù)

描述

示例值

status

接口狀態(tài),具體含義請參考表5-接口狀態(tài)碼及錯誤碼

ok

其中參數(shù)status的狀態(tài)碼及錯誤碼如表4所示。

表4?接口狀態(tài)碼及錯誤碼說明

代碼

說明

ok

數(shù)據(jù)正常

invalid key

錯誤的key,請檢查你的key是否輸入以及是否輸入有誤

unknown location

未知或錯誤城市/地區(qū)

no data for this location

該城市/地區(qū)沒有你所請求的數(shù)據(jù)

no more requests

超過訪問次數(shù),需要等到當月最后一天24點(免費用戶為當天24點)后進行訪問次數(shù)的重置或升級你的訪問量

param invalid

參數(shù)錯誤,請檢查你傳遞的參數(shù)是否正確

too fast

超過限定的QPM,請參考QPM說明

dead

無響應或超時,接口服務異常請聯(lián)系我們

permission denied

無訪問權限,你沒有購買你所訪問的這部分服務

sign error

簽名錯誤,請參考簽名算法

????如果接口無法正確獲取數(shù)據(jù)可以根據(jù)狀態(tài)碼對比上表查詢原因。

用戶可以根據(jù)指定的名稱找到對應的數(shù)據(jù)值,例如在實況天氣數(shù)據(jù)now中可以查到當前城市的溫度,對應的字段節(jié)選如下:

"tmp":"19"

上述代碼表示當前城市的溫度為19攝氏度。

        1. 服務器域名配置必做

每一個小程序在與指定域名地址進行網(wǎng)絡通信前都必須將該域名地址添加到管理員后臺白名單中。因此本示例需要對域名地址https://free-api.heweather.com進行服務器配置。

小程序開發(fā)者登陸mp.weixin.qq.com進入管理員后臺,選擇【設置】—【開發(fā)設置】—【服務器域名】即可進行添加或修改需要進行網(wǎng)絡通訊的服務器域名地址,如圖4所示。

【微信小程序項目】——十分鐘開發(fā)網(wǎng)絡API·天氣查詢小程序、天氣查詢,美觀簡約,簡單易上手

?

圖4?服務器域名配置

將當前需要使用的接口添加到request合法域名】欄目中,配置完成后再登陸小程序開發(fā)工具就可以允許小程序與指定的服務器域名地址之間的網(wǎng)絡通訊了,注意每個月只可以申請修改5次服務器域名配置。

PART II 小程序項目新建(必做

本次項目創(chuàng)建選擇空白文件夾weatherDemo,注意請取消勾選“建立普通快速啟動模板”選項,以免自動生成代碼影響手動編寫。效果如圖5所示。

【微信小程序項目】——十分鐘開發(fā)網(wǎng)絡API·天氣查詢小程序、天氣查詢,美觀簡約,簡單易上手

?

圖5小程序項目填寫效果示意圖

單擊“確定”按鈕完成項目創(chuàng)建,然后準備手動創(chuàng)建頁面配置文件。

PART III?頁面配置

        1. 創(chuàng)建應用文件

首先進行app.json文件的創(chuàng)建,并在app.json文件中輸入一對{}符號,然后Ctrl+S快捷鍵進行保存。后面用同樣的方法新建app.js和app.wxss文件,這兩個文件暫時保持內容空白關閉即可。全部完成后的目錄結構如圖6所示。

【微信小程序項目】——十分鐘開發(fā)網(wǎng)絡API·天氣查詢小程序、天氣查詢,美觀簡約,簡單易上手

?

圖6應用文件創(chuàng)建完成

        1. 創(chuàng)建頁面文件

應用文件創(chuàng)建完畢后,在根目錄中創(chuàng)建自定義文件夾pages用于存放頁面文件。本次項目只有一個頁面文件,因此只需要在pages目錄下創(chuàng)建index文件夾和其內部的wxml、wxss、js以及json四個同名文件。完成后的目錄結構如圖7所示。

【微信小程序項目】——十分鐘開發(fā)網(wǎng)絡API·天氣查詢小程序、天氣查詢,美觀簡約,簡單易上手

?

圖7頁面文件創(chuàng)建完成

此時app.json會自動生成頁面配置代碼,如圖8所示。

【微信小程序項目】——十分鐘開發(fā)網(wǎng)絡API·天氣查詢小程序、天氣查詢,美觀簡約,簡單易上手

圖8?app.json自動生成頁面配置代碼

        1. 創(chuàng)建其他文件

接下來創(chuàng)建其他自定義文件,本項目主要還需要一個文件夾用于存放天氣圖標素材。文件夾名稱由開發(fā)者自定義(例如images),創(chuàng)建方式與pages文件夾創(chuàng)建方式完全相同。

本項目用到的圖標素材共計75個,均來源于和風天氣官網(wǎng),圖標合集如圖9所示。

【微信小程序項目】——十分鐘開發(fā)網(wǎng)絡API·天氣查詢小程序、天氣查詢,美觀簡約,簡單易上手

圖9?天氣圖標素材展示

其中圖標文件名為對應的天氣代碼,后綴名均為.png。需要注意的是,部分圖標文件名帶有字母n表示夜間天氣圖標,例如100n.png。

對目錄結構中的images文件夾右擊,選擇“硬盤打開”,在該文件夾中新建二級目錄weather_icon,然后將圖標文件全部復制粘貼進去。完成后的目錄結構如圖10所示。

?【微信小程序項目】——十分鐘開發(fā)網(wǎng)絡API·天氣查詢小程序、天氣查詢,美觀簡約,簡單易上手

?

?

圖10頁面文件創(chuàng)建完成

此時文件配置就全部完成,下一節(jié)將正式進行頁面布局和樣式設計。

PART IV 視圖設計必做

        1. 導航欄設計

小程序默認導航欄是黑底白字的效果,因此需要在app.json中自定義導航欄標題和背景顏色。更新后的app.json文件代碼如下:

{

??"pages": [

????"pages/index/index"

??],

??"window": {

????"navigationBarBackgroundColor": "#3883FA",

????"navigationBarTitleText": "今日天氣"

??}

}

上述代碼可以更新所有頁面的導航欄標題文本為“今日天氣”、背景顏色為藍色(#3883FA)。預覽效果如圖11所示

【微信小程序項目】——十分鐘開發(fā)網(wǎng)絡API·天氣查詢小程序、天氣查詢,美觀簡約,簡單易上手。

?

圖11自定義導航欄效果

        1. 頁面設計

頁面上主要包含4個區(qū)域,具體內容解釋如下:

  1. 區(qū)域1:地區(qū)選擇器,用戶可以自行選擇查詢的省市區(qū);
  2. 區(qū)域2:顯示當前城市的溫度和天氣狀態(tài)的文字說明;
  3. 區(qū)域3:顯示當前城市的天氣圖標;
  4. 區(qū)域4:分多行顯示其他天氣信息,例如濕度、氣壓、能見度和風向等。

面板之間需要有一定的間隔距離,設計圖如圖12所示。

【微信小程序項目】——十分鐘開發(fā)網(wǎng)絡API·天氣查詢小程序、天氣查詢,美觀簡約,簡單易上手

?

圖12頁面設計圖

計劃使用組件如下:

  1. 頁面整體:<view>組件,并定義class='container';
  2. 區(qū)域1:<picker>組件;
  3. 區(qū)域2:<text>組件;
  4. 區(qū)域3:<image>組件;
  5. 區(qū)域4:<view>組件,并定義class='detail';
  6. 區(qū)域4內單元行:4個<view>組件,并定義class=?'bar';
  7. 區(qū)域4內單元格:每行3個<view>組件,并定義class='box'。
  1. 整體容器設計

首先定義頁面容器<view>,WXML(pages/index/index.wxml)代碼片段如下:

<view class='container'>

</view>

在app.wxss中設置容器樣式,代碼片段如下:

/*背景容器樣式*/

.container{

??height: 100vh; /*高度為100視窗,寫成100%無效*/

??display: flex; /*flex布局模型*/

??flex-direction: column; /*垂直布局*/

??align-items: center;/*水平方向居中*/

}

當前效果如圖13所示。

圖13頁面預覽效果

由于還沒添加組件元素,因此尚看不出來flex布局模型效果。

  1. 區(qū)域1(省市區(qū)選擇器)設計

區(qū)域1需要使用<picker>組件來實現(xiàn)一個省市區(qū)選擇器,用戶點擊可切換選擇其他城市。

WXML(pages/index/index.wxml)代碼片段修改如下:

<view class='container'>

??<!--區(qū)域1:地區(qū)選擇器-->

??<picker mode='region'>

????<view>北京市</view>

??</picker>

</view>

在<picker>組件內部是開發(fā)者任意填寫的一個城市名稱,當前效果如圖14所示。

【微信小程序項目】——十分鐘開發(fā)網(wǎng)絡API·天氣查詢小程序、天氣查詢,美觀簡約,簡單易上手

?

頁面初始效果

【微信小程序項目】——十分鐘開發(fā)網(wǎng)絡API·天氣查詢小程序、天氣查詢,美觀簡約,簡單易上手

?

點擊城市名稱時效果

圖14區(qū)域1預覽效果

由圖可見,點擊城市名稱時會從底部彈出控件,用戶可以進行省市區(qū)選擇。

  1. 區(qū)域2(文本)設計

區(qū)域2需要使用<text>組件實現(xiàn)一個單行天氣信息,包括當前城市的溫度和天氣狀況。

WXML(pages/index/index.wxml)代碼片段修改如下:

<view class='container'>

??<!--區(qū)域1:地區(qū)選擇器-->

??…代碼略

??<!--區(qū)域2:單行天氣信息-->

??<text>19°C 晴</text>

</view>

WXSS(pages/index/index.wxss)代碼片段如下:

/*文本樣式*/

text{

??font-size: 80rpx;

??color:#3C5F81;

}

當前效果如圖15所示。

【微信小程序項目】——十分鐘開發(fā)網(wǎng)絡API·天氣查詢小程序、天氣查詢,美觀簡約,簡單易上手

?

圖15區(qū)域2預覽效果

當前顯示的文本內容由開發(fā)者自定義,待查詢到實際數(shù)據(jù)后將動態(tài)更新文本內容。

  1. 區(qū)域3(天氣圖標)設計

區(qū)域3需要使用<image>組件展示當前城市的天氣圖標。

WXML(pages/index/index.wxml)代碼片段修改如下:

<view class='container'>

??<!--區(qū)域1:地區(qū)選擇器-->

??…代碼略

??<!--區(qū)域2:單行天氣信息-->

??…代碼略

??<!--區(qū)域3:天氣圖標-->

??<image src='/images/weather_icon/999.png' mode='widthFix'></image>

</view>

WXSS(pages/index/index.wxss)代碼片段如下:

/*圖標樣式*/

image{

??width: 220rpx;

}

當前效果如圖16所示。

【微信小程序項目】——十分鐘開發(fā)網(wǎng)絡API·天氣查詢小程序、天氣查詢,美觀簡約,簡單易上手

?

圖16區(qū)域3預覽效果

“N/A”表示的天氣狀況為“未知”,待查詢到實況數(shù)據(jù)后將動態(tài)更新圖標內容。

  1. 區(qū)域4(多行天氣信息)設計

區(qū)域4需要使用<view>組件展示多行天氣信息。

WXML(pages/index/index.wxml)代碼片段修改如下:

<view class='container'>

??<!--區(qū)域1:地區(qū)選擇器-->

??…代碼略

??<!--區(qū)域2:單行天氣信息-->

??…代碼略

??<!--區(qū)域3:天氣圖標-->

??…代碼略

??<!--區(qū)域4:多行天氣信息-->

??<view class='detail'>

????<view class='bar'>

??????<view class='box'>濕度</view>

??????<view class='box'>氣壓</view>

??????<view class='box'>能見度</view>

????</view>

????<view class='bar'>

??????<view class='box'>0 %</view>

??????<view class='box'>0 hPa</view>

??????<view class='box'>0 km</view>

????</view>

????<view class='bar'>

??????<view class='box'>風向</view>

??????<view class='box'>風速</view>

??????<view class='box'>風力</view>

????</view>

????<view class='bar'>

??????<view class='box'>0</view>

??????<view class='box'>0 km/h</view>

??????<view class='box'>0 </view>

????</view>

??</view>

</view>

WXSS(pages/index/index.wxss)代碼片段如下:

/*區(qū)域4整體樣式*/

.detail{

??width: 100%;

??display: flex;

??flex-direction: column;

}

/*區(qū)域4單元行樣式*/

.bar{

??display: flex;

??flex-direction: row;

??margin: 20rpx 0;

}

/*區(qū)域4單元格樣式*/

.box{

??width: 33.3%;

??text-align: center;

}

當前效果如圖17所示。

【微信小程序項目】——十分鐘開發(fā)網(wǎng)絡API·天氣查詢小程序、天氣查詢,美觀簡約,簡單易上手

?

圖17區(qū)域4預覽效果

當前為開發(fā)者自定義數(shù)據(jù),待查詢到實況數(shù)據(jù)后將動態(tài)更新區(qū)域4的內容。此時頁面設計就全部完成了,接下來需要進行邏輯實現(xiàn)。

PART V 邏輯實現(xiàn)(必做

        1. 更新省市區(qū)信息

首先修改<picker>組件中的“北京市”為{{region}},然后為<picker>組件追加自定義bindchange事件,用于監(jiān)聽選項變化。

WXML(pages/index/index.wxml)代碼片段修改如下:

<view class='container'>

??<!--區(qū)域1:地區(qū)選擇器-->

??<picker mode='region'?bindchange='regionChange'>

????<view>{{region}}</view>

??</picker>

</view>

由于省市區(qū)選擇器的返回結果是數(shù)組的形式,因此在JS文件的data中定義region為包含了省、市、區(qū)三個項目的數(shù)組,初始城市信息由開發(fā)者自定義。

JS(pages/index/index.js)代碼片段修改如下:

Page({

??/**

???* 頁面的初始數(shù)據(jù)

???*/

??data: {

????region:['安徽省','蕪湖市','鏡湖區(qū)']

??},

??/**

???* 更新省市區(qū)信息

???*/

??regionChange: function(e) {

????this.setData({region: e.detail.value});

??},

})

運行效果如圖18所示。

【微信小程序項目】——十分鐘開發(fā)網(wǎng)絡API·天氣查詢小程序、天氣查詢,美觀簡約,簡單易上手

?

  1. 重新選擇城市

【微信小程序項目】——十分鐘開發(fā)網(wǎng)絡API·天氣查詢小程序、天氣查詢,美觀簡約,簡單易上手

?

  1. 更新省市區(qū)信息

圖18更新省市區(qū)信息

由圖可見,當前已經可以自行切換到國內任意省市區(qū)。

        1. 獲取實況天氣數(shù)據(jù)

在JS文件中使用自定義函數(shù)getWeather進行實況天氣數(shù)據(jù)的獲取。由于非直轄市無法查詢到具體的區(qū),因此后續(xù)的天氣查詢以城市作為查詢依據(jù)。

JS(pages/index/index.js)代碼片段修改如下:

Page({

??/**

???* 獲取實況天氣數(shù)據(jù)

???*/

??getWeather: function () {

????var that = this;//this不可以直接在wxAPI函數(shù)內部使用

????wx.request({

??????url: 'https://free-api.heweather.com/s6/weather/now',??//后端程序

??????data:{

????????location:that.data.region[1],

????????key:'58cde137c76f44f5bc7885fc1e711aa9'??//也可以換成其他的和風天氣密鑰key

??????},

??????success:function(res){

????????console.log(res.data);

??????}

????})

??},

})

將上述函數(shù)在生命周期函數(shù)onLoad和自定義函數(shù)regionChange中分別進行調用,表示當頁面加載時和切換城市時均主動獲取一次實況天氣數(shù)據(jù)。

JS(pages/index/index.js)代碼片段修改如下:

Page({

??/**

???* 更新省市區(qū)信息

???*/

??regionChange: function(e) {

????this.setData({region: e.detail.value});

????this.getWeather();//更新天氣

??},

??/**

???* 生命周期函數(shù)--監(jiān)聽頁面加載

???*/

??onLoad: function(options) {

????this.getWeather();//更新天氣

??},

})

在聯(lián)網(wǎng)狀態(tài)下保存后重新運行會在Console控制臺得到第三方服務器發(fā)回的JSON數(shù)據(jù),如圖19所示。

【微信小程序項目】——十分鐘開發(fā)網(wǎng)絡API·天氣查詢小程序、天氣查詢,美觀簡約,簡單易上手

?

圖19?Console控制臺獲取到服務器返回數(shù)據(jù)

由圖可見,實況天氣數(shù)據(jù)包含在HeWeather6[0].now屬性中。更新getWeather函數(shù),將該屬性存入到JS文件的data中,JS(pages/index/index.js)代碼片段修改如下:

Page({

??/**

???* 獲取實況天氣數(shù)據(jù)

???*/

??getWeather: function () {

????var that = this;//this不可以直接在wxAPI函數(shù)內部使用

????wx.request({

??????url: 'https://free-api.heweather.com/s6/weather/now',

??????data:{

????????location:that.data.region[1],

????????key:'58cde137c76f44f5bc7885fc1e711aa9'??//也可以換成其他的和風天氣密鑰key

??????},

??????success:function(res){

????????that.setData({now:res.data.HeWeather6[0].now});

??????}

????})

??},

})

此時重新運行將在AppData面板查到已經被記錄的天氣數(shù)據(jù),如圖20所示。

【微信小程序項目】——十分鐘開發(fā)網(wǎng)絡API·天氣查詢小程序、天氣查詢,美觀簡約,簡單易上手

?

圖20?AppData面板獲取到數(shù)據(jù)

現(xiàn)在只需要將這些數(shù)據(jù)更新到頁面上即可顯示出來。

        1. 更新頁面天氣信息

將WXML頁面上所有的臨時數(shù)據(jù)都替換成{{now.屬性}}的形式,例如溫度是{{now.tmp}}。

WXML(pages/index/index.wxml)代碼片段修改如下:

<view class='container'>

??<!--區(qū)域1:地區(qū)選擇器-->

??…代碼略

??<!--區(qū)域2:單行天氣信息-->

??<text>{{now.tmp}}°C {{now.cond_txt}}</text>

??<!--區(qū)域3:天氣圖標-->

??<image src='/images/weather_icon/{{now.cond_code}}.png' mode='widthFix'></image>

??<!--區(qū)域4:多行天氣信息-->

??<view class='detail'>

????<view class='bar'>

??????<view class='box'>濕度</view>

??????<view class='box'>氣壓</view>

??????<view class='box'>能見度</view>

????</view>

????<view class='bar'>

??????<view class='box'>{{now.hum}} %</view>

??????<view class='box'>{{now.pres}}?hPa</view>

??????<view class='box'>{{now.vis}} km</view>

????</view>

????<view class='bar'>

??????<view class='box'>風向</view>

??????<view class='box'>風速</view>

??????<view class='box'>風力</view>

????</view>

????<view class='bar'>

??????<view class='box'>{{now.wind_dir}}</view>

??????<view class='box'>{{now.wind_spd}}?km/h</view>

??????<view class='box'>{{now.wind_sc}} 級</view>

????</view>

??</view>

</view>

運行效果如圖21所示。

【微信小程序項目】——十分鐘開發(fā)網(wǎng)絡API·天氣查詢小程序、天氣查詢,美觀簡約,簡單易上手

?

圖21?實況天氣數(shù)據(jù)顯示效果

需要注意的是,在網(wǎng)速受限的情況下可能不能立刻獲取到數(shù)據(jù),因此最好在JS文件的data中為now規(guī)定自定義初始數(shù)據(jù),獲取到實際數(shù)據(jù)前可以臨時顯示這些數(shù)據(jù)。

JS(pages/index/index.js)代碼片段修改如下:

Page({

??/**

???* 頁面的初始數(shù)據(jù)

???*/

??data: {

????region: ['安徽省', '蕪湖市', '鏡湖區(qū)'],

????now:{

??????tmp:0,

??????cond_txt:'未知',

??????cond_code:'999',

??????hum:0,

??????pres:0,

??????vis:0,

??????wind_dir:0,

??????wind_spd:0,

??????wind_sc:0

????}

??},

})

在網(wǎng)速受限的狀態(tài)下,初始數(shù)據(jù)顯示效果如圖22所示。

【微信小程序項目】——十分鐘開發(fā)網(wǎng)絡API·天氣查詢小程序、天氣查詢,美觀簡約,簡單易上手

?

圖22?初始數(shù)據(jù)顯示效果

????此時項目就全部完成了。

PART VI?課后思考

可以使用其他天氣接口制作更豐富的效果。文章來源地址http://www.zghlxwxcb.cn/news/detail-419017.html

到了這里,關于【微信小程序項目】——十分鐘開發(fā)網(wǎng)絡API·天氣查詢小程序、天氣查詢,美觀簡約,簡單易上手的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 0 代碼,十分鐘搞定微信版 ChatGPT,輕松擁有個性化 AI 助手教程!

    0 代碼,十分鐘搞定微信版 ChatGPT,輕松擁有個性化 AI 助手教程!

    大家好,我是賀同學。 最近一周多的時間,只要不是生活在火星,只要你是個正常刷手機的打工人,一定都被 OpenAI 的 ChatGPT 給刷屏了。 看到別人玩的不亦樂乎,想要自己搭建一個機器人玩玩?最好是可私信,可群聊的那種識別 嗯嗯,知道你們有這個需求,雖遲但到,賀哥

    2024年02月15日
    瀏覽(27)
  • 十分鐘學會開發(fā)自己的Python AI應用【OpenAI API篇】

    十分鐘學會開發(fā)自己的Python AI應用【OpenAI API篇】

    最近 OpenAI 宣布 ChatGPT 將很快推出他們的 API。雖然我們不知道這需要多長時間,但這之前我們可以熟悉下OpenAI API,快速開發(fā)自己的AI應用! 通過今天學習 OpenAI API,你將能夠訪問 OpenAI 的強大模型,例如用于自然語言的 GPT-3、用于將自然語言翻譯為代碼的 Codex 以及用于創(chuàng)建和

    2024年04月25日
    瀏覽(41)
  • 還在苦惱如何開發(fā)一個Chrome插件嗎?十分鐘帶你實現(xiàn)一個實用小插件

    還在苦惱如何開發(fā)一個Chrome插件嗎?十分鐘帶你實現(xiàn)一個實用小插件

    你是否曾考慮過創(chuàng)建自己的 Chrome 插件,但又撓頭毫無思路?那么在接下來的幾分鐘里,我不僅會介紹 Chrome 瀏覽器擴展的基本知識,還會指導你通過五個簡單的步驟來制作自己的擴展。 知道怎么做嗎?讓我們一探究竟! 今年我們見證了人工智能能力的爆炸式增長。雖然cha

    2024年02月10日
    瀏覽(91)
  • 零編程經驗,通過 GPT-4 十分鐘開發(fā)了一個瀏覽器插件,并成功運行,實現(xiàn)了需求目標!

    零編程經驗,通過 GPT-4 十分鐘開發(fā)了一個瀏覽器插件,并成功運行,實現(xiàn)了需求目標!

    大佬藍鳥ID: sundyme 零編程經驗,通過 GPT-4 十分鐘開發(fā)了一個瀏覽器插件,并成功運行,實現(xiàn)了需求目標!太不可思意了,真正體會到了自然語言編程的魅力! 下一步是利用Pinterest 的 API 接口實現(xiàn)自動發(fā)圖,已經生成好了代碼和步驟(看著挺靠譜),等明天開發(fā)者權限審核下

    2023年04月08日
    瀏覽(86)
  • Vue3 + TS + Element-Plus —— 項目系統(tǒng)中封裝表格+搜索表單 十分鐘寫五個UI不在是問題

    Vue3 + TS + Element-Plus —— 項目系統(tǒng)中封裝表格+搜索表單 十分鐘寫五個UI不在是問題

    前期回顧 純前端 —— 200行JS代碼、實現(xiàn)導出Excel、支持DIY樣式,縱橫合并-CSDN博客 https://blog.csdn.net/m0_57904695/article/details/135537511?spm=1001.2014.3001.5501 目錄 一、?????newTable.vue 封裝Table 二、?? newForm.vue 封裝搜索表單? 三、?? TS類型?srctypesglobal.d.ts 四、?? 頁面使用功能

    2024年01月24日
    瀏覽(26)
  • 十分鐘入門Zigbee

    十分鐘入門Zigbee

    大部分教程通常都是已Zigbee原理開始講解和學習,各種概念讓初學者難以理解。本教程從一個小白的角度出發(fā),入門無需任何Zigbee底層原理知識,只需要基本的MCU研發(fā)經驗就可以掌握,讓您快速實現(xiàn)zigbee組網(wǎng)和節(jié)點之間通信。 本教程采用泰凌微TLSR8258芯片,芯片資料鏈接TLS

    2023年04月09日
    瀏覽(106)
  • 每天十分鐘學會Spark

    每天十分鐘學會Spark

    Spark是什么 Spark是一種基于內存的快速、通用、可拓展的大數(shù)據(jù)分析計算引擎。 Spark官網(wǎng):http://spark.apache.org/ Spark的特點 1、快速 ??一般情況下,對于迭代次數(shù)較多的應用程序,Spark程序在內存中的運行速度是Hadoop MapReduce運行速度的100多倍,在磁盤上的運行速度是Hadoop MapRedu

    2024年03月18日
    瀏覽(98)
  • 十分鐘掌握Java本地緩存

    —————————— Yesterday is history, tomorrow is a mystery, but today is a gift. That is why it’s called the present. —————————— 緩存是Java開發(fā)中經常用到的組件,我們會使用緩存來存儲一些 不經常改變 的 熱點 數(shù)據(jù),提高系統(tǒng)處理效率,其根本原因在于內存和硬盤讀寫速度的

    2024年02月05日
    瀏覽(94)
  • Django入門,十分鐘學會登錄網(wǎng)頁

    我們假定你已經閱讀了?安裝 Django。你能知道 Django 已被安裝,且安裝的是哪個版本,通過在命令提示行輸入命令 cmd黑窗口運行,不懂cmd百度一下 如果這是你第一次使用 Django 的話,你需要一些初始化設置。也就是說,你需要用一些自動生成的代碼配置一個 Django?project?——

    2024年01月24日
    瀏覽(104)
  • 十分鐘python入門 正則表達式

    正則常見的三種功能,它們分別是:校驗數(shù)據(jù)的有效性、查找符合要求的文本以及對文本進行切割和替換等操作。 所謂元字符就是指那些在正則表達式中具有特殊意義的專用字符 元字符大致分成這幾類:表示單個特殊字符的,表示空白符的,表示某個范圍的,表示次數(shù)的量

    2024年02月13日
    瀏覽(92)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包