功能如圖:
雖然工作中只負責小程序后台開發,但是還是小程序開發產生了濃厚的興趣,官方文檔也是超級詳細了
這里就簡單做一個快遞單號的查詢:
新建一個page:
接着就可以寫wxml了.這里用一個簡單的input和一個滾動視圖:
<!--pages/express/express.wxml--> <view class='title'> <text>快遞查詢</text> </view> <!-- 輸入框 --> <view> <input class='input' bindconfirm='query' placeholder="請輸入快遞單號" type='text' confirm-type="search"/> </view> <!-- 信息展示,滾動視圖顯示,不滑動頁面 --> <scroll-view style='margin-top:50px' scroll-y style="height: 400px;" > <view wx:for="{{expressInfo}}"> <view class='item'> <view> <text>【{{item.time}}】:</text> </view> <view style='margin-left:50px'> <text> {{item.context}}</text> </view> </view> </view> </scroll-view>
然后是js邏輯部分,這部分應該算是重點了,其中有個很基礎的坑,就是this的問題
本着數據頁面分離的開發思想,涉及到數據都寫在js里面,和vue一模一樣了,需要注意一下js的運用就可以了:
data: { //查詢接口 queryUrl:"http://www.kuaidi100.com/query?type=zhongtong&temp=0.9021720216142217&postid=", postid:null, //輸入的快遞單號 expressInfo:[] },
//快遞查詢 // event.detail={value:輸入的值} query: function(event){ console.log("開始查詢"); console.log("獲取input輸入值:"+event.detail.value); this.setData({ //賦值輸入的快遞單號 postid: event.detail.value }) //發送請求 var that = this;//賦值this,解決數據賦值問題 wx.request({ url: this.data.queryUrl + this.data.postid, data: {}, method: "GET", header: { 'content-type': 'application/json' // 默認值 }, success(res) { console.log(res.data) //此處this指wx.request,不能使用this that.setData({ expressInfo: res.data.data }) } })
這里需要注意下的是,如果使用的API是http的,在項目詳情里面需要設置不檢驗證書,開頭選擇項目的時候
不然API會不通過,我這里使用的是快遞100的API,直接F12接口拿來測試一下可用就行了:
然后就是app.json里面page配置成第一個一進去小程序就可以使用了:
最后注意一點的是,轉移符的使用,這里如果不處理,有些符號,比如\,是會報錯的,使用正則限制一下
或者處理一下就可以了!最后貼一下css吧,個人感覺就是多使用view標簽,其實就是div,可以很方便
實現自己想要的布局了:
.title{ text-align: center; width:100%; margin-top: 10px; } .input{ margin-left: 35px; margin-top: 20px; border-radius:4px; border:1px solid #c8cccf; width: 80%; height: 35px; vertical-align:middle; } .item{ width: 85%; margin-top: 25px; margin-left: 25px; }