技術棧: JavaScript+WXML+WXSS
JavaScript: 微信小程序的 JavaScript 運行環境即不是 Browser 也不是 Node.js。它運行在微信 App 的上下文中,不能操作 Browser context 下的 DOM,也不能通過 Node.js 相關接口訪問操作系統 API。所以,嚴格意義來講,微信小程序并不是 html5,雖然開發過程和用到的技術棧和 html5 是相通的。
WXML:為微信小程序的展示層,并不是使用 Html,而是自己發明的基于 XML 語法的描述。
WXSS: 用來修飾展示層的樣式
目錄結構結構
├── pages
| ├── index
| | ├── index.json index 頁面配置
| | ├── index.js index 頁面邏輯
| | ├── index.wxml index 頁面結構
| | └── index.wxss index 頁面樣式表
| └── log
| ├── log.json log 頁面配置
| ├── log.wxml log 頁面邏輯
| ├── log.js log 頁面結構
| └── log.wxss log 頁面樣式表
├── app.js 小程序邏輯
├── app.json 小程序公共設置
└── app.wxss 小程序公共樣式表
生命周期
小程序的生命周期分為程序和頁面兩個部分:
程序:有啟動(未顯示)、顯示出來了和隱藏三個事件。
頁面:有加載、顯示出來了、準備好了(首次)、卸載頁面、隱藏頁面五個事件。
onPullDownRefresh:下拉刷新的時候。
onReachBottom:上拉無限加載的時候。
onShareAppMessage: 點擊右上角分享按鈕的時候。
觸摸事件
tap:點擊
longap:長按
touchstart:觸摸開始
touchend:觸摸結束
touchmove:觸摸移動(比如可用于拖拽排列列表)
touchcancel:觸摸取消
組件事件
硬件能力
1、從本地相冊選取照片視頻
2、拍照或錄像
3、掃描二維碼
4、錄制語音
5、直接打開doc, xls, ppt, pdf, docx, xlsx, pptx
6、保存文件到微信 app 目錄
7、獲取地理位置
8、獲取用戶手機型號、設備像素比、窗口寬高、語言、微信版本號、操作系統版本、客戶端平臺
9、獲取網絡狀態:2g,3g,4g,wifi
10、監聽重力感應器,5次/秒,可以做搖一搖等
11、監聽羅盤數據,5次/秒
12、直接撥打電話(企業宣傳留個咨詢電話)
微信能力
1、微信登錄
2、獲取用戶的頭像、昵稱、性別、國家、城市、省份
3、微信支付
4、模板消息
只有以下兩種行為可以觸發模板消息
支付
當用戶在小程序內完成過支付行為,可允許開發者向用戶在7天內推送有限條數的模板消息(1次支付可下發1條,多次支付下發條數獨立,互相不影響)
提交表單
當用戶在小程序內發生過提交表單行為且該表單聲明為要發模板消息的,開發者需要向用戶提供服務時,可允許開發者向用戶在7天內推送有限條數的模板消息(1次提交表單可下發1條,多次提交下發條數獨立,相互不影響)
5、客服消息
用戶通過客服消息按鈕進入會話,1分鐘內可下發1條消息,超時不能發送;
用戶在客服窗口發送信息,可回復 3 條且需要 48 小時內回復
6、分享到聊天窗口
分享圖片不能自定義;會取當前頁面,從頂部開始,高度為 80% 屏幕寬度的圖像作為分享圖片。