我們經常看到有的網站顯示天氣信息,它是怎么實現的呢?今天就來分享一些關於js調用天氣API的幾種做法。
網上也能找到很多種方法,但是一般都是免費的不好用,好用的不免費。
以前用過新浪的天氣api,查詢當天和明天的天氣還湊合(雖然不是很准),后來有一個要查詢七天的需求,試了好多次都不行,只能另辟蹊徑了。
在網上找到一個www.k780.com/ 貌似是國外的,需要注冊一下,得到接口需要的參數appkey和sign值,目前是不收費的,下面就把代碼粘出來,附帶注釋
var paramUrl = "http://api.k780.com:88/?app=weather.future&weaid=" + url + "&appkey=" + appkey + "&sign=27c89ecea48a0e28f9c25f23be6a4e40&format=json"; $.ajax({ url: paramUrl, type: "get", dataType: "jsonp", jsonp: 'jsoncallback', async: false, data: "", // success: eval(funback) 封裝成方法時,這里是回調參數名稱 success:function(data){ //這里處理返回的結果 json格式的 } });
其中weaid:地址,可以是名稱可以是IP,appkey sign是注冊獲取的
返回的結果,返回七天的值,這里只截取了一天的,其中值得一提的是weather_icon字段,天氣的圖片,有幾個版本的大圖小圖,可以在網站上下載
{"success":"1","result":[{"weaid":"2071","days":"2016-06-01","week":"星期三","cityno":"hbyangxin","citynm":"陽新","cityid":"101200603","temperature":"28℃/20℃","humidity":"0℉/0℉","weather":"暴雨轉小雨","weather_icon":"http://api.k780.com:88/upload/weather/d/10.gif","weather_icon1":"http://api.k780.com:88/upload/weather/n/7.gif","wind":"北風","winp":"3-4級","temp_high":"28","temp_low":"20","humi_high":"0","humi_low":"0","weatid":"11","weatid1":"8","windid":"20","winpid":"14"}]}
總起來說這個還是比較蠻好用的,參數少,返回值清晰齊全。存在ajax請求跨域問題,現在還沒搞太清楚,使用是沒問題的,等搞明白了再來補充