首頁?>?知識?資訊?>?微信小程序開發(fā)-小程序的API。?>?正文

微信小程序開發(fā)-小程序的API。

2020/12/29 10:23:16 · 稿源:傳誠信

API

小程序開發(fā)框架提供豐富的微信原生 API,可以方便的調(diào)起微信提供的能力,如獲取用戶信息,本地存儲,支付功能等。詳細介紹請參考?API 文檔。

通常,在小程序 API 有以下幾種類型:

事件監(jiān)聽 API

我們約定,以?on?開頭的 API 用來監(jiān)聽某個事件是否觸發(fā),如:wx.onSocketOpen,wx.onCompassChange?等。

這類 API 接受一個回調(diào)函數(shù)作為參數(shù),當事件觸發(fā)時會調(diào)用這個回調(diào)函數(shù),并將相關數(shù)據(jù)以參數(shù)形式傳入。

代碼示例

wx.onCompassChange(function?(res)?{
??console.log(res.direction)})

同步 API

我們約定,以?Sync?結尾的 API 都是同步 API, 如?wx.setStorageSync,wx.getSystemInfoSync?等。此外,也有一些其他的同步 API,如?wx.createWorkerwx.getBackgroundAudioManager?等,詳情參見 API 文檔中的說明。

同步 API 的執(zhí)行結果可以通過函數(shù)返回值直接獲取,如果執(zhí)行出錯會拋出異常。

代碼示例

try?{
??wx.setStorageSync('key',?'value')}?catch?(e)?{
??console.error(e)}

異步 API

大多數(shù) API 都是異步 API,如?wx.request,wx.login?等。這類 API 接口通常都接受一個?Object?類型的參數(shù),這個參數(shù)都支持按需指定以下字段來接收接口調(diào)用結果:

Object 參數(shù)說明

參數(shù)名類型必填說明
successfunction接口調(diào)用成功的回調(diào)函數(shù)
failfunction接口調(diào)用失敗的回調(diào)函數(shù)
completefunction接口調(diào)用結束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行)
其他Any-接口定義的其他參數(shù)

回調(diào)函數(shù)的參數(shù)

successfail,complete?函數(shù)調(diào)用時會傳入一個?Object?類型參數(shù),包含以下字段:

屬性類型說明
errMsgstring錯誤信息,如果調(diào)用成功返回?${apiName}:ok
errCodenumber錯誤碼,僅部分 API 支持,具體含義請參考對應 API 文檔,成功時為?0。
其他Any接口返回的其他數(shù)據(jù)

異步 API 的執(zhí)行結果需要通過?Object?類型的參數(shù)中傳入的對應回調(diào)函數(shù)獲取。部分異步 API 也會有返回值,可以用來實現(xiàn)更豐富的功能,如?wx.request,wx.connectSocket?等。

代碼示例

wx.login({
??success(res)?{
????console.log(res.code)
??}})

異步 API 返回 Promise

基礎庫?2.10.2?版本起,異步 API 支持 callback & promise 兩種調(diào)用方式。當接口參數(shù) Object 對象中不包含 success/fail/complete 時將默認返回 promise,否則仍按回調(diào)方式執(zhí)行,無返回值。

注意事項

  1. 部分接口如?downloadFile,?request,?uploadFile,?connectSocket,?createCamera(小游戲)本身就有返回值, 它們的 promisify 需要開發(fā)者自行封裝。

  2. 當沒有回調(diào)參數(shù)時,異步接口返回 promise。此時若函數(shù)調(diào)用失敗進入 fail 邏輯, 會報錯提示?Uncaught (in promise),開發(fā)者可通過 catch 來進行捕獲。

  3. wx.onUnhandledRejection?可以監(jiān)聽未處理的 Promise 拒絕事件。

代碼示例

//?callback?形式調(diào)用wx.chooseImage({
??success(res)?{
????console.log('res:',?res)
??}})//?promise?形式調(diào)用wx.chooseImage().then(res?=>?console.log('res:?',?res))

云開發(fā) API

開通并使用小程序云開發(fā),即可使用云開發(fā)API,在小程序端直接調(diào)用服務端的云函數(shù)。

代碼示例

wx.cloud.callFunction({
??//?云函數(shù)名稱
??name:?'cloudFunc',
??//?傳給云函數(shù)的參數(shù)
??data:?{
????a:?1,
????b:?2,
??},
??success:?function(res)?{
????console.log(res.result)?//?示例
??},
??fail:?console.error})//?此外,云函數(shù)同樣支持promise形式調(diào)用


  • 相關推薦
  • 大家在看
熱文
  • 熱門
  • 最新
客戶服務
咨詢熱線

010-62199213

24小時咨詢熱線

139-1050-5354