一個人開發一個產品,小程序從0到1,第3章 應用文件


一個小程序項目,在根目錄下會有3個應用文件,一個是全局業務邏輯文件app.js,一個是公共配置文件app.json,還有一個是公共樣式表文件app.wxss。在這3個文件中,app.js和app.json是不可刪除,是必須有的文件。

3.1 app.js

打開文件的那一瞬間,我才知道:人生遇到的人很多,但真正懂你的人卻寥寥無幾。懂你的人,即使你不說話,他也知道你的喜怒哀樂。不懂你的人呢,就給你一大堆代碼,也不管你是否有了基礎。如果有基礎,我看這個干啥,如果沒有,我看這個干啥?

清空onLaunch里面的代碼,只留一個空方法就好。好看的皮囊千篇一律,有趣的

靈魂萬里挑一。App()必須且只能在app.js中調用一次,否則會出現無法預期的后果。

在onLaunch或其他函數中,可通過this(App實例)調用globalData全局變量。

//app.js

App({

  onLaunch: function () {

let user = this.globalData.userInfo;

  },

  globalData: {

    userInfo: null

  }

})

在App()里,除了onLaunch,還有onShow、onError等函數。

備注:當用戶點擊左上角關閉,或者按了設備 Home 鍵離開微信,小程序並沒有直接銷毀而是進入了后台;當再次進入微信或再次打開小程序,又會從后台進入前台。

如果想在onLaunch或onShow函數中,獲取相關參數內容,只要帶上參數options一起飛就可以了。

//app.js

App({

  /**

   *啟動執行的初始化方法

   * 首次打開時執行,全局只觸發一次

   */

  onLaunch: function(options) {

    console.log('page:', options.path);

  },

  //小程序啟動或從后台進入到前台時觸發

  onShow: function(options) {

    console.log('scene:', options.scene);

  },

  //全局變量

  globalData: {

    userInfo: null

  }

})

 

輸出結果:

page: pages/index/index
scene: 1001

options可以獲取的值列表

3.2 app.json

全局配置文件,可配置且必須配置的頁面路徑;可配置窗口風格,如標題欄背景色和標題;可配置全局tab標簽、網絡超時時間和多tab等。常用配置項列表如下。

pages

每一項代表對應頁面的路徑和文件名(不用后綴),數組的第一項為首頁。小程序添加或刪除頁面時,必須跟pages同步。

"pages": [
  "pages/index/index",
  "pages/logs/logs"
 ]

window

用於設置小程序的狀態欄、導航條、標題、窗口背景色。

類型中的HexColor為十六進制顏色值,如"#ff0000"。屬性backgroundColor配置的窗口背景色,在下拉刷新或上拉加載時才能見到。如果要配置頁面背景色,可到app.wxss進行全局配置或到index.wxss進行單個頁面配置。

"window": {
  "backgroundTextStyle": "light",
  "navigationBarBackgroundColor": "#00a24d",
  "navigationBarTitleText": "導航欄標題",
  "backgroundColor": "#cccccc",
  "navigationBarTextStyle": "white",
  "enablePullDownRefresh": true
}

tabBar

如果小程序是一個多 tab 應用,可以通過tabBar配置項指定tab欄的表現,以及 tab 切換時顯示的對應頁面。tab數目最少 2 個、最多 5 個。

 

其中 list 接受一個數組,數組中的每個項都是一個對象,屬性列表。

圖標大小限制為40kb,建議尺寸為 81px * 81px,當postion為top,既tab在頂部時,iconPath和selectedIconPath無效。

在項目根目錄下新建images目錄,上網搜索“首頁”、“日志”圖標。圖標默認顏色為:#8b8b8b,選中時顏色為:#00a24d,大小為81*81。如果實在不想折騰,那就關注公眾號半碼,輸入:芝麻開門,獲取圖標下載地址。

"tabBar": {
    "borderStyle": "black",
    "backgroundColor": "#ffffff",
    "color": "#8b8b8b",
    "selectedColor": "#00a24d",
    "list": [
      {
        "iconPath": "images/index.png",
        "selectedIconPath": "images/index_p.png",
        "pagePath": "pages/index/index",
        "text": "首頁"
      },
      {
        "iconPath": "images/log.png",
        "selectedIconPath": "images/log_p.png",
        "pagePath": "pages/logs/logs",
        "text": "日志"
      }
    ]
  }

networkTimeout

網絡請求的超時時間,默認為60000毫秒,既1分鍾,在調用wx.uploadFile上傳文件,wx.downloadFile下載文件,wx.request上傳/下載數據和wx.connectSocket網絡通信接口時會用到。

"networkTimeout": {
    "request": 10000,
    "downloadFile": 10000
  }

requiredBackgroundModes

配置在后台運行的能力,目前只支持audio:后台播放音樂和location:后台定位兩項。

"requiredBackgroundModes": [
   "audio",
   "location"
 ]

navigateToMiniProgramAppIdList

當前小程序需要使用 wx.navigateToMiniProgram 接口跳轉到其他小程序時,需要先在配置文件中聲明需要跳轉的小程序appId 列表,最多允許填寫 10 個。

"navigateToMiniProgramAppIdList": [
    "wx3ea04d8***126a29"
  ]

permission

小程序用到敏感功能,如獲取地理位置時,需要彈窗詢問用戶,用戶點擊同意后才可調用接口獲取相關信息,如經緯度。詢問窗口上的內容,就是這里的desc值。

"permission": {
    "scope.userLocation": {
      "desc": "唯有授予位置權限,才好找你吹牛皮"
    }
  }

3.3 app.wxss

WXSS是一套樣式語言,用於描述WXML文件里的組件樣式,決定組件應該怎么顯示。為了可對wxss資源進行復用,小程序對CSS進行了擴充,使其支持:通過@import語句后接外聯樣式表的相對路徑並用;結束的方式導入樣式。

app.wxss為公共樣式表,不用顯示引入,便可在頁面文件wxml中使用。

/** common.wxss **/
.bg {
    background-color: #cccccc;
}

/**app.wxss**/
@import "common.wxss";

.container {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  padding: 200rpx 0;
  box-sizing: border-box;
} 

應用文件來了,頁面文件還會遠么?--不會,就在下一章節。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM