写的是查顺丰的,别人家的快递也一样。
百度的apistore封了,聚合数据的api也可以用,不过有次数限制,最后选了快递100,非常感谢lilydedbb提供的api!
另外,一直报错域名不合法,我在这里卡了很久,需要在设置里把网站的域名添加进request名单里,然后在开发工具里刷新。且一个月只能添加三次域名,无形中又限制了开发的次数。
//index.js
//获取应用实例
var app = getApp()
Page({
data: {
motto: 'Hello World',
userInfo: {},
expressNu:null,
expressInfo:null
},
//事件处理函数
bindViewTap: function() {
wx.navigateTo({
url: '../logs/logs'
})
},
btnClick : function(){
//console.log(this.data.expressNu)
var thispage = this;
app.getExpressInfo(this.data.expressNu,function(data){
console.log(data)
thispage.setData({expressInfo:data})
});
},
input : function(e){
this.setData({expressNu:e.detail.value})
},
onLoad: function () {
console.log('onLoad')
var that = this
//调用应用实例的方法获取全局数据
app.getUserInfo(function(userInfo){
//更新数据
that.setData({
userInfo:userInfo
})
})
}
})
<!--index.wxml-->
<view class="container">
<input placeholder="请输入运单号" bindinput="input" />
<button type="primary" bindtap="btnClick"> 查询 </button>
<scroll-view scroll-y="true" style="height: 200px;" >
<view wx:for="{{expressInfo.data}}">
{{item.context}} 【 {{item.ftime}}】\n
</view>
</scroll-view>
</view>
/**index.wxss**/
input{
border: 1px solid red;
width: 90%;
margin: 5%;
padding: 5px;
}
//app.js
App({
onLaunch: function () {
//调用API从本地缓存中获取数据
var logs = wx.getStorageSync('logs') || []
logs.unshift(Date.now())
wx.setStorageSync('logs', logs)
},
getUserInfo:function(cb){
var that = this
if(this.globalData.userInfo){
typeof cb == "function" && cb(this.globalData.userInfo)
}else{
//调用登录接口
wx.login({
success: function () {
wx.getUserInfo({
success: function (res) {
that.globalData.userInfo = res.userInfo
typeof cb == "function" && cb(that.globalData.userInfo)
}
})
}
})
}
},
getExpressInfo:function(nu,cb){
wx.request({
url: 'https://www.kuaidi100.com/query',
data:{
'type':'shunfeng',
'postid':nu
},
success: function(res) {
// console.log(res.data)
cb(res.data)
}
})
},
globalData:{
userInfo:null
}
})