微信小程序兼容接口及小程序兼容組件
微信小程序的功能不斷的增加,但是舊版本的微信客戶端并不支持新功能,所以在使用這些新能力的時(shí)候需要做兼容,文檔會(huì)在組件,API等頁(yè)面描述中帶上各個(gè)功能所支持的版本號(hào),可以通過(guò)wx.getSystemInfo或者wx.getSystemInfoSync獲取到微信小程序的基礎(chǔ)庫(kù)版本號(hào),也可以通過(guò) wx.canIUse 詳情 來(lái)判斷是否可以在該基礎(chǔ)庫(kù)版本下直接使用對(duì)應(yīng)的API或者組件。
微信小程序兼容方式 - 組件
對(duì)于組件,新增的屬性在舊版本上不會(huì)被處理,不過(guò)也不會(huì)報(bào)錯(cuò)。如果特殊場(chǎng)景需要對(duì)舊版本做一些降級(jí)處理,可以這樣子做。
Page({
data: {
canIUse: wx.canIUse('button.open-type.contact')
}
})<button wx:if="{{canIUse}}" open-type="contact"> 客服消息 </button> <contact-button wx:else></contact-button>微信小程序兼容方式 - 接口
對(duì)于新增的 API,可以用以下代碼來(lái)判斷是否支持用戶的手機(jī)。
if (wx.openBluetoothAdapter) {
wx.openBluetoothAdapter()
} else { // 如果希望用戶在最新版本的客戶端上體驗(yàn)?zāi)男〕绦?,可以這樣子提示 wx.showModal({
title: '提示',
content: '當(dāng)前微信版本過(guò)低,無(wú)法使用該功能,請(qǐng)升級(jí)到最新微信版本后重試。' })
}微信小程序兼容方式 - 參數(shù)
對(duì)于 API 的參數(shù)或者返回值有新增的參數(shù),可以判斷用以下代碼判斷。
wx.showModal({
success: function(res) { if (wx.canIUse('showModal.cancel')) { console.log(res.cancel)
}
}
})微信小程序基礎(chǔ)組件
框架為開(kāi)發(fā)者提供了一系列基礎(chǔ)組件,開(kāi)發(fā)者可以通過(guò)組合這些基礎(chǔ)組件進(jìn)行快速開(kāi)發(fā)。
什么是組件:
組件是視圖層的基本組成單元。
組件自帶一些功能與微信風(fēng)格的樣式。
一個(gè)組件通常包括開(kāi)始標(biāo)簽和結(jié)束標(biāo)簽,屬性用來(lái)修飾這個(gè)組件,內(nèi)容在兩個(gè)標(biāo)簽之內(nèi)。
<tagname property="value"> Content goes here ... </tagname>
注意:所有組件與屬性都是小寫(xiě),以連字符-連接
屬性類(lèi)型
| 類(lèi)型 | 描述 | 注解 |
|---|---|---|
| Boolean | 布爾值 | 組件寫(xiě)上該屬性,不管該屬性等于什么,其值都為true,只有組件上沒(méi)有寫(xiě)該屬性時(shí),屬性值才為false。如果屬性值為變量,變量的值會(huì)被轉(zhuǎn)換為Boolean類(lèi)型 |
| Number | 數(shù)字 | 1, 2.5 |
| String | 字符串 | "string" |
| Array | 數(shù)組 | [ 1, "string" ] |
| Object | 對(duì)象 | { key: value } |
| EventHandler | 事件處理函數(shù)名 | "handlerName" 是 Page中定義的事件處理函數(shù)名 |
| Any | 任意屬性 |
共同屬性類(lèi)型
所有組件都有的屬性:
| 屬性名 | 類(lèi)型 | 描述 | 注解 |
|---|---|---|---|
| id | String | 組件的唯一標(biāo)示 | 保持整個(gè)頁(yè)面唯一 |
| class | String | 組件的樣式類(lèi) | 在對(duì)應(yīng)的 WXSS 中定義的樣式類(lèi) |
| style | String | 組件的內(nèi)聯(lián)樣式 | 可以動(dòng)態(tài)設(shè)置的內(nèi)聯(lián)樣式 |
| hidden | Boolean | 組件是否顯示 | 所有組件默認(rèn)顯示 |
| data-* | Any | 自定義屬性 | 組件上觸發(fā)的事件時(shí),會(huì)發(fā)送給事件處理函數(shù) |
| bind* / catch* | EventHandler | 組件的事件 | 詳見(jiàn)事件 |
掃二維碼手機(jī)查看該文章




