1.App()
函数用来注册一个小程序。接受一个 object 参数,其指定小程序的生命周期函数等。
App({ onLaunch:
function
()
{
// Do something initial when launch.
}, onShow:
function
()
{
// Do something when show.
}, onHide:
function
()
{
// Do something when hide.
}, onError:
function
(
msg
)
{
console
.log(msg) }, globalData:
'I am global data'
})
2.我们提供了全局的
getApp()
函数,可以获取到小程序实例。
// other.js
var
appInstance = getApp()
console
.log(appInstance.globalData)
// I am global data
3.发起网络请求
//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
})
})
}
})
//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: 'http://apis.baidu.com/kuaidicom/express_api/express_api?muti=0&order=desc&nu='+nu,
data: {
x: '' ,
y: ''
},
header: {
'apikey': '2e24c33be1e7f7dafebc496c07441138'
},
success: function(res) {
// console.log(res.data)
cb(res.data)
}
})
},
globalData:{
userInfo:null
}
})