app.js文件是項目的入口文件:
//app.js App({ onLaunch: function () { // 展示本地存儲能力 var logs = wx.getStorageSync('logs') || [] logs.unshift(Date.now()) wx.setStorageSync('logs', logs) // 登錄 wx.login({ success: res => { // 發送 res.code 到后台換取 openId, sessionKey, unionId } }) // 獲取用戶信息 wx.getSetting({ success: res => { if (res.authSetting['scope.userInfo']) { // 已經授權,可以直接調用 getUserInfo 獲取頭像昵稱,不會彈框 wx.getUserInfo({ success: res => { // 可以將 res 發送給后台解碼出 unionId this.globalData.userInfo = res.userInfo // 由於 getUserInfo 是網絡請求,可能會在 Page.onLoad 之后才返回 // 所以此處加入 callback 以防止這種情況 if (this.userInfoReadyCallback) { this.userInfoReadyCallback(res) } } }) } } }) }, globalData: { userInfo: null } })
頁面的 page.js 文件會覆蓋 app.js文件
App.js文件里面的一些方法:
onLaunch : function(){}:
onLoad:function(options){}:頁面初始化 options 為頁面跳轉所傳遞過來的參數
onReady:function(){}:頁面渲染完成
onShow:function(){}:頁面顯示
onHide:function(){}:頁面隱藏
onUnload:function(){}:頁面關閉
還可以在 app.js里面定義一些全局的方法:
例如:獲取用戶信息的方法(wx.getSetting)和屬性(globalData):
在 page 頁面如何獲取 app.js 定義的屬性:
首先在 page.js 文件里面:const app = getApp(); 在對應方法里面直接console.log( app.globalData.userInfo );
實例:獲取當前微信用戶信息
這個可以用在登陸頁:判斷是否存在登陸。登陸過就改變 app.js 里面的配置。
使用:
例如這個用戶是否登陸了,如果全局里面沒有用戶的信息,需要跳轉到登陸的頁面進行登陸,如果說有了用戶的信息就不用跳轉到登陸頁面,當登陸完成之后,我們就可以設置全局的數據,然后返回到跳轉的頁面,直接讀取用戶的信息就可以。