02——微信小程序官方demo講解——app部分
阿新 • • 發佈:2018-03-18
time 個數 目錄結構 src 4.2 err 設置網絡 dex unshift
第一節講了目錄結構,這節主要講解下目錄中app.js部分。
它由三部分組成app.js、app.json與app.wxss
1.JS部分
1.1概述
//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 發送給後臺解碼出 unionIdthis.globalData.userInfo = res.userInfo // 由於 getUserInfo 是網絡請求,可能會在 Page.onLoad 之後才返回 // 所以此處加入 callback 以防止這種情況 if (this.userInfoReadyCallback) { this.userInfoReadyCallback(res) } } }) } } }) }, globalData: { userInfo:null } })
說明:一個項目有且僅有一個app模塊。該模塊中
App()
函數用來註冊一個小程序。接受一個 object 參數,其指定小程序的生命周期函數等。
app中可以指定四個周期onLaunch、onShow、onHide、onError。
其中。全局的 getApp()
函數可以用來獲取到小程序實例。
其中除了可以設置上面四個生命周期函數外,還可以配置其他自定義屬性。作為這個app的全局變量。例如
App({ myObj: {} //其他頁面中都可以獲取到該變量 })
1.2場景值
由於一個小程序可以從眾多入口中進入,比如最近聯系人列表中下拉時出現的菜單,以及小程序模塊中搜索小程序,所以每次進入小程序的時候都會攜帶一個id。小程序中這個id的術語叫場景值,這個場景值可以從app中的onLaunch,或者onShow函數中獲取。
2.JSON部分
{ "pages": [ "pages/index/index", "pages/logs/index" ], "window": { "navigationBarTitleText": "Demo" }, "tabBar": { "list": [{ "pagePath": "pages/index/index", "text": "首頁" }, { "pagePath": "pages/logs/logs", "text": "日誌" }] }, "networkTimeout": { "request": 10000, "downloadFile": 10000 }, "debug": true }
解釋:
pages:該app下有哪些頁面,是一個數組,每一項對應一個頁面路徑。其中第一項為首頁。
windows:可以對頁面進行一些顏色配置。如圖所示:
tabbar,可選項。用於定義主頁面下方的tabbar。
networkTimeout:用於設置網絡請求超時時間。
常用的就這些。
3.WXSS部分
該部分定義應用級別的樣式,類似於web開發中的common.css。
只要定義在這裏的樣式。可以在任務和一個頁面下訪問。
4.一些技巧:
4.1 可以在app.js中的onLaunch中利用wx的api。監聽網絡變化,以提示用戶網絡環境的變化。比如沒網了。有網了之類的。
4.2 待續。
02——微信小程序官方demo講解——app部分