一个寝室3个攻一受全h_97国产福利_在线中文字幕理伦电影_www.youjizz.com国产

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

微信小程序開發-小程序的API。

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

API

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

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

事件監聽 API

我們約定,以?on?開頭的 API 用來監聽某個事件是否觸發,如:wx.onSocketOpenwx.onCompassChange?等。

這類 API 接受一個回調函數作為參數,當事件觸發時會調用這個回調函數,并將相關數據以參數形式傳入。

代碼示例

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

同步 API

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

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

代碼示例

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

異步 API

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

Object 參數說明

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

回調函數的參數

successfailcomplete?函數調用時會傳入一個?Object?類型參數,包含以下字段:

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

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

代碼示例

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

異步 API 返回 Promise

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

注意事項

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

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

  3. wx.onUnhandledRejection?可以監聽未處理的 Promise 拒絕事件。

代碼示例

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

云開發 API

開通并使用小程序云開發,即可使用云開發API,在小程序端直接調用服務端的云函數

代碼示例

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


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

010-62199213

24小時咨詢熱線

139-1050-5354