- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > web開(kāi)發(fā) >
- 微信小程序如何實(shí)現快遞查詢(xún)功能
這篇文章給大家分享的是有關(guān)微信小程序如何實(shí)現快遞查詢(xún)功能的內容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
微信小程序 快遞查詢(xún)功能:
產(chǎn)品需求,
準備api,
代碼編寫(xiě)。
第一步:產(chǎn)品需求,我們需要實(shí)現如下圖的一個(gè)功能,在文本框輸入快遞單號,點(diǎn)擊查詢(xún),下面出來(lái)我們需要的快遞信息
第二步:準備
我們先找一個(gè)快遞的api接口,通過(guò)http://apistore.baidu.com/我們可以看到很多的api,我們找一個(gè)快遞查詢(xún)的
我們可以看到有接口地址,和一些參數。做好這個(gè)準備接下來(lái)就開(kāi)始編碼工作了…………
第三步:編碼工作
我們新建一個(gè)Express的文件,然后默認文件準備齊全
我們現在app.js中把我們的頭部導航改為一個(gè)綠色的背景色
在index.json中設置導航的名稱(chēng):“快遞查詢(xún)”
在index.wxml中,把默認的代碼刪掉,放上我們的一個(gè)文本輸入框,一個(gè)查詢(xún)按鈕
<!--index.wxml--> <view class="container"> <input placeholder="請輸入快遞單號" bindinput="input" /> <button type="primary" bindtap="btnClick"> 查詢(xún) </button> </view>
接下來(lái)我們需要給文本框和按鈕加上一個(gè)樣式:在index.wxss中設置
/**index.wxss**/ input{border:1px solid #1AAD19; width:90%; height:20px; font-size:12px; padding:5px 10px;} button{margin-top:20px;}
到現在為止我們的布局就做好了如圖:
接下來(lái)我們需要去調用我們事先準備好的api快遞查詢(xún)接口了,我們首先需要在app.js中設置一個(gè)網(wǎng)絡(luò )請求的方法getExpressInfo里面設置兩個(gè)參數一個(gè)快遞參數,一個(gè)返回的方法。
利用文檔給我們提供的wx.request發(fā)起網(wǎng)絡(luò )請求url:地址路徑,里面有幾個(gè)參數muti=0返回多行完整的數據,order=desc按時(shí)間由新到舊排列,com快遞的名稱(chēng)(快遞公司的名稱(chēng)),nu快遞單號,header:請求的參數apikey的值為我們自己百度賬號的apikey(可以登錄自己的百度賬號,在個(gè)人中心中查看)
//設置一個(gè)發(fā)起網(wǎng)絡(luò )請求的方法 getExpressInfo:function(nu,cb){ wx.request({ url: 'http://apis.baidu.com/kuaidicom/express_api/express_api?muti=0&order=desc&com=zhongtong&nu='+nu, data: { x: '' , y: '' }, header: { 'apikey': '247d486b40d7c8da473a9a794f900508' }, success: function(res) { //console.log(res.data) cb(res.data); } }) }, globalData:{ userInfo:null }
有了這樣的請求方法,接下來(lái)就需要給我們的查詢(xún)按鈕添加一個(gè)點(diǎn)擊的事件:bindtap="btnClick",在index.js中添加查詢(xún)事件,通過(guò)app來(lái)調用實(shí)現寫(xiě)好的請求方法getExpressInfo,在此之前我們需要先獲取一下文本框內輸入的快遞單號,
給文本框綁定一個(gè)bindinput事件,
獲取輸入的快遞單號。在data:對象中定義兩個(gè)變量一個(gè)輸入框的值,一個(gè)要顯示的快遞信息。
//index.js //獲取應用實(shí)例 var app = getApp() Page({ data: { motto: 'Hello World', userInfo: {}, einputinfo:null,//輸入框值 expressInfo:null //快遞信息 }, //事件處理函數 bindViewTap: function() { wx.navigateTo({ url: '../todos/todos' }) }, onLoad: function () { console.log('onLoad') var that = this //調用應用實(shí)例的方法獲取全局數據 app.getUserInfo(function(userInfo){ //更新數據 that.setData({ userInfo:userInfo }) }) }, //快遞輸入框事件 input:function(e){ this.setData({einputinfo:e.detail.value}); }, //查詢(xún)事件 btnClick:function(){ var thisexpress=this; app.getExpressInfo(this.data.einputinfo,function(data){ console.log(data); thisexpress.setData({expressInfo:data}) }) } })
最后我們需要在index.wxml中把查詢(xún)出來(lái)的快遞信息顯示出來(lái)了,利用vx:for來(lái)循環(huán)數組。
<!--index.wxml--> <view class="container"> <input placeholder="請輸入快遞單號" bindinput="input" /> <button type="primary" bindtap="btnClick"> 查詢(xún) </button> </view> <view class="expressinfo" wx:for="{{expressInfo.data}}"> <ul> <li>{{item.context}}</li> <li>{{item.time}}</li> </ul> </view>
最后一步設置下顯示出來(lái)的快遞信息的樣式:
/**index.wxss**/ input{border:1px solid #1AAD19; width:90%; height:20px; font-size:12px; padding:5px 10px;} button{margin-top:20px;} .expressinfo{font-size:12px; line-height: 18px;padding:10px; text-align:left;} .expressinfo li{display:block}
到這里我們的整個(gè)查詢(xún)就完成了……
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系站長(cháng)郵箱:ts@56dr.com進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。
Copyright ? 2009-2021 56dr.com. All Rights Reserved. 特網(wǎng)科技 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2 建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站