小程序官方文檔: https://developers.weixin.qq.com/miniprogram/dev/
什么是微信小程序:
小程序的開發流程:
個人開發者如何注冊小程序:
首先,你需要進入 http://mp.weixin.qq.com,點擊右上角的「立即注冊」鏈接,在「帳戶類型」頁面中,選擇「小程序」. 然后,填寫你的郵箱、密碼。提交后,填寫的郵箱會收到一封確認注冊郵件,你需要點擊郵件中的確認鏈接,繼續注冊流程。需要注意的是,注冊小程序所用的郵箱,不能為已經綁定公眾號、小程序、個人號的郵箱。按照一些列的流程注冊完成后,下載小程序開發工具以及開發工具的了解及使用:
https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html
小程序代碼結構的了解:
pages 路由,某一個模塊對應的路徑
-- js
-- wxml 相當于HTML
-- wxss 相當于CSS
utils 公用的方法
app.js 小程序的入口,是全局的方法
小程序代碼編寫: Tabbar配置
代碼編寫: WXML 和 WXSS
***1. ***(WXML(WeiXin Markup Language)是框架設計的一套標簽語言,結合基礎組件、事件系統,可以構建出頁面的結構。)
2. WXSS(WeiXin Style Sheets)是一套樣式語言,用于描述WXML 的組件樣式
與CSS 相比,WXSS 擴展的特性有:尺寸單位 和樣式導入
rpx(responsive pixel): 可以根據屏幕寬度進行自適應。規定屏幕寬為750rpx。如在iPhone6 上,屏幕寬度為375px,共有750個物理像素,則750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。
使用@import
語句可以導入外聯樣式表,@import
后跟需要導入的外聯樣式表的相對路徑,用;
表示語句結束
小程序常見問題: 1.API請求* 2.基礎庫的兼容3.不同頁面間的傳值*
1.API請求 wx.request
2.基礎庫的兼容
小程序基礎庫最開始是從1.0.0開始,現在已經迭升級到2.0.8的版本
那么在開發中就要考慮到一些兼容性問題:
比如剪切板功能,是在1.1.0版本才出現的. 那么一些老版本客戶端的微信用戶,在打開的時候,就有可能會出現無法代碼報錯,無法使用.
類似的版本兼容性還有很多.
那么一種簡單處理方法就是判斷 當前版本是否支持該功能, 只有在支持的時候才可以使用,不支持的時候,可以做出合理性的提示(比如提示用戶當前版本過低,請升級最新版本使用該功能等等..)
官方文檔示例代碼:
對于新增的API,可以用以下代碼來判斷是否支持用戶的手機。
if(wx.openBluetoothAdapter) {
wx.openBluetoothAdapter()
} else{
// 如果希望用戶在最新版本的客戶端上體驗您的小程序,可以這樣子提示
wx.showModal({
title: '提示',
content: '當前微信版本過低,無法使用該功能,請升級到最新微信版本后重試。'
})
}
第二種: 微信提供了一個wx.canIUse(String)方法, 此接口從基****礎庫****1.1.1 ****版本開始支持
判斷小程序的API,回調,參數,組件等是否在當前版本可用
需要注意:一些組件一開始就是有的,但是組件中的一些屬性等 是在后面的版本中才增加的, 在適當的場景中都可以用canIUse()****進****行判斷
3.不同頁面間的傳值
頁面間的傳值大概分為三種方式
第一種: 通過url參數的方式進行傳值
然后我們在****詳****情****頁****: onLoad: function(options) {
console.log("跳轉成功");
console.log(options.title);
},
通過options 就可以獲取到傳遞的值了
第二種: 全局變量的形式
app.js中的值相當于是全局變量
定義好,然后我們在不同的頁面就可以拿到這個值:
** 1. **const app=getApp() 定義好之后,我們才能獲取到對應的app中的東西
- 比如我們取host值: app.globalData.host就可以獲取到
第三種:數據緩存 wx.setStorage
存
wx.setStorage({
key:"key",
data:"value"
})
取
wx.getStorage({
key: "key",
success: function(res) {
console.log(res.data)
}
})
其中分(同步,異步獲取),(根據key值獲取單個數據,獲取全部緩存數據)(移除單個,清空全部緩存)
對于這三種數據存儲的方式,可以根據具體的使用場景使用