1.wx.reLaunch(Object object)
關閉所有頁面,打開到應用內的某個頁面。
wx.reLaunch({url:'/pages/positons/index'})
參數說明:
屬性 | 類型 | 默認值 | 必填 | 說明 |
---|---|---|---|---|
url | string | 是 | 需要跳轉的應用內頁面路徑 (代碼包路徑),路徑后可以帶參數。參數與路徑之間使用?分隔,參數鍵與參數值用=相連,不同參數用&分隔;如 'path?key=value&key2=value2' | |
success | function | 否 | 接口調用成功的回調函數 | |
fail | function | 否 | 接口調用失敗的回調函數 | |
complete | function | 否 | 接口調用結束的回調函數(調用成功、失敗都會執行) |
2.wx.setStorageSync(string key, any data)
將數據存儲在本地緩存中指定的 key 中。會覆蓋掉原來該 key 對應的內容。除非用戶主動刪除或因存儲空間原因被系統清理,否則數據都一直可用。單個 key 允許存儲的最大數據長度為 1MB,所有數據存儲上限為 10MB。
key和value值。
value:需要存儲的內容。只支持原生類型、Date、及能夠通過JSON.stringify
序列化的對象。
wx.setStorageSync(`abcde${abcdefg}`,value);
Tip:
storage 應只用來進行數據的持久化存儲,不應用于運行時的數據傳遞或全局狀態管理。啟動過程中過多的同步讀寫存儲,會顯著影響啟動耗時。
3.wx.getStorageSync(string key)
從本地緩存中同步獲取指定 key 的內容。
wx.getStorageSync(`ancdef${abc}`)
4.wx.getAccountInfoSync()
獲取當前賬號信息。線上小程序版本號僅支持在正式版小程序中獲取,開發版和體驗版中無法獲取。
屬性 | 類型 | 說明 | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
miniProgram | Object | 小程序賬號信息 | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||
plugin | Object | 插件賬號信息(僅在插件中調用時包含這一項) | ||||||||||||||||||||||||||||||||||
|
const accountInfo = wx.getAccountInfoSync();
console.log(accountInfo.miniProgram.appId) // 小程序 appId
console.log(accountInfo.miniProgram.envVersion) // 小程序小程序版本 envVersion
console.log(accountInfo.plugin.appId) // 插件 appId
console.log(accountInfo.plugin.version) // 插件版本號, 'a.b.c' 這樣的形式
5.wx.showLoading(Object object)
顯示 loading 提示框。需主動調用 wx.hideLoading 才能關閉提示框
屬性 | 類型 | 默認值 | 必填 | 說明 |
---|---|---|---|---|
title | string | 是 | 提示的內容 | |
mask | boolean | false | 否 | 是否顯示透明蒙層,防止觸摸穿透 |
success | function | 否 | 接口調用成功的回調函數 | |
fail | function | 否 | 接口調用失敗的回調函數 | |
complete | function | 否 | 接口調用結束的回調函數(調用成功、失敗都會執行) |
wx.showLoading({title: '加載中',mask: true
})
6.wx.hideLoading(Object object)
隱藏 loading 提示框
屬性 | 類型 | 默認值 | 必填 | 說明 | 最低版本 |
---|---|---|---|---|---|
noConflict | boolean | false | 否 | 目前 toast 和 loading 相關接口可以相互混用,此參數可用于取消混用特性 | 2.22.1 |
success | function | 否 | 接口調用成功的回調函數 | ||
fail | function | 否 | 接口調用失敗的回調函數 | ||
complete | function | 否 | 接口調用結束的回調函數(調用成功、失敗都會執行) |
wx.hideLoading()
7.wx.login(Object object)
調用接口獲取登錄憑證(code)。通過憑證進而換取用戶登錄態信息,包括用戶在當前小程序的唯一標識(openid)、微信開放平臺賬號下的唯一標識(unionid,若當前小程序已綁定到微信開放平臺賬號)及本次登錄的會話密鑰(session_key)等。用戶數據的加解密通訊需要依賴會話密鑰完成。
屬性 | 類型 | 默認值 | 必填 | 說明 | 最低版本 |
---|---|---|---|---|---|
timeout | number | 否 | 超時時間,單位ms | 1.9.90 | |
success | function | 否 | 接口調用成功的回調函數 | ||
fail | function | 否 | 接口調用失敗的回調函數 | ||
complete | function | 否 | 接口調用結束的回調函數(調用成功、失敗都會執行) |
object.success 回調函數
屬性 | 類型 | 說明 |
---|---|---|
code | string | 用戶登錄憑證(有效期五分鐘)。開發者需要在開發者服務器后臺調用?code2Session,使用 code 換取 openid、unionid、session_key 等信息 |
object.fail 回調函數
屬性 | 類型 | 說明 | 最低版本 |
---|---|---|---|
errMsg | String | 錯誤信息 | |
errno | Number | errno 錯誤碼,錯誤碼的詳細說明參考?Errno錯誤碼 | 2.24.0 |
wx.login({success: async (res) {const {a,b,c}=await getPnoneInfo({loginKey:resCode.code}) if (res.code) {//發起網絡請求wx.request({url: 'https://example.com/onLogin',data: {code: res.code}})} else {console.log('登錄失敗!' + res.errMsg)}}
})
8.wx.hideShareMenu(Object object)
隱藏當前頁面的轉發按鈕
屬性 | 類型 | 默認值 | 必填 | 說明 | 最低版本 |
---|---|---|---|---|---|
menus | Array.<string> | 否 | 本接口為 Beta 版本,暫只在 Android 平臺支持。需要隱藏的轉發按鈕名稱列表,默認['shareAppMessage', 'shareTimeline']。按鈕名稱合法值包含 "shareAppMessage"、"shareTimeline" 兩種 | 2.11.3 | |
success | function | 否 | 接口調用成功的回調函數 | ||
fail | function | 否 | 接口調用失敗的回調函數 | ||
complete | function | 否 | 接口調用結束的回調函數(調用成功、失敗都會執行) |
Tip:
- "shareAppMessage"表示“發送給朋友”按鈕,"shareTimeline"表示“分享到朋友圈”按鈕
- 隱藏“發送給朋友”按鈕時必須同時隱藏“分享到朋友圈”按鈕,隱藏“分享到朋友圈”按鈕時則允許不隱藏“發送給朋友”按鈕
wx.hideShareMenu({menus: ['shareAppMessage', 'shareTimeline']
})orwx.hideShareMenu();
9.wx.showShareMenu(Object object)
顯示當前頁面的轉發按鈕
屬性 | 類型 | 默認值 | 必填 | 說明 | 最低版本 |
---|---|---|---|---|---|
withShareTicket | boolean | false | 否 | 是否使用帶 shareTicket 的轉發詳情 | |
menus | Array.<string> | 否 | 本接口為 Beta 版本,暫只在 Android 平臺支持。需要顯示的轉發按鈕名稱列表,默認['shareAppMessage']。按鈕名稱合法值包含 "shareAppMessage"、"shareTimeline" 兩種 | 2.11.3 | |
success | function | 否 | 接口調用成功的回調函數 | ||
fail | function | 否 | 接口調用失敗的回調函數 | ||
complete | function | 否 | 接口調用結束的回調函數(調用成功、失敗都會執行) |
Tip:
- "shareAppMessage"表示“發送給朋友”按鈕,"shareTimeline"表示“分享到朋友圈”按鈕
- 顯示“分享到朋友圈”按鈕時必須同時顯示“發送給朋友”按鈕,顯示“發送給朋友”按鈕時則允許不顯示“分享到朋友圈”按鈕
wx.showShareMenu({withShareTicket: true,menus: ['shareAppMessage', 'shareTimeline']
})
10.wx.navigateTo(Object object)
保留當前頁面,跳轉到應用內的某個頁面。但是不能跳到 tabbar 頁面。使用?wx.navigateBack?可以返回到原頁面。小程序中頁面棧最多十層。
屬性 | 類型 | 默認值 | 必填 | 說明 |
---|---|---|---|---|
url | string | 是 | 需要跳轉的應用內非 tabBar 的頁面的路徑 (代碼包路徑), 路徑后可以帶參數。參數與路徑之間使用?? ?分隔,參數鍵與參數值用?= ?相連,不同參數用?& ?分隔;如 'path?key=value&key2=value2' | |
events | Object | 否 | 頁面間通信接口,用于監聽被打開頁面發送到當前頁面的數據。基礎庫 2.7.3 開始支持。 | |
routeType | string | 否 | 2.29.2 自定義路由類型,相關文檔?自定義路由 | |
routeConfig | Object | 否 | 3.4.0 自定義路由配置,相關文檔?自定義路由 | |
routeOptions | Object | 否 | 3.4.0 自定義路由參數,相關文檔?自定義路由 | |
success | function | 否 | 接口調用成功的回調函數 | |
fail | function | 否 | 接口調用失敗的回調函數 | |
complete | function | 否 | 接口調用結束的回調函數(調用成功、失敗都會執行) |
object.success 回調函數
屬性 | 類型 | 說明 |
---|---|---|
eventChannel | EventChannel | 和被打開頁面進行通信 |
wx.navigateTo({url: 'test?id=1',events: {// 為指定事件添加一個監聽器,獲取被打開頁面傳送到當前頁面的數據acceptDataFromOpenedPage: function(data) {console.log(data)},someEvent: function(data) {console.log(data)}...},success: function(res) {// 通過eventChannel向被打開頁面傳送數據res.eventChannel.emit('acceptDataFromOpenerPage', { data: 'test' })}
})
//test.js
Page({onLoad: function(option){console.log(option.query)const eventChannel = this.getOpenerEventChannel()eventChannel.emit('acceptDataFromOpenedPage', {data: 'test'});eventChannel.emit('someEvent', {data: 'test'});// 監聽acceptDataFromOpenerPage事件,獲取上一頁面通過eventChannel傳送到當前頁面的數據eventChannel.on('acceptDataFromOpenerPage', function(data) {console.log(data)})}
})orwx.navigateTo({url: '/pages/hotView/index',
})
11.wx.navigateBack(Object object)
關閉當前頁面,返回上一頁面或多級頁面。可通過?getCurrentPages?獲取當前的頁面棧,決定需要返回幾層。
屬性 | 類型 | 默認值 | 必填 | 說明 |
---|---|---|---|---|
delta | number | 1 | 否 | 返回的頁面數,如果 delta 大于現有頁面數,則返回到首頁。 |
success | function | 否 | 接口調用成功的回調函數 | |
fail | function | 否 | 接口調用失敗的回調函數 | |
complete | function | 否 | 接口調用結束的回調函數(調用成功、失敗都會執行) |
wx.navigateBack()or // 注意:調用 navigateTo 跳轉時,調用該方法的頁面會被加入堆棧,而 redirectTo 方法則不會。見下方示例代碼// 此處是A頁面
wx.navigateTo({url: 'B?id=1'
})// 此處是B頁面
wx.navigateTo({url: 'C?id=1'
})// 在C頁面內 navigateBack,將返回A頁面
wx.navigateBack({delta: 2
})
12.wx.clearStorage(Object object)
清理本地數據緩存。
屬性 | 類型 | 默認值 | 必填 | 說明 |
---|---|---|---|---|
success | function | 否 | 接口調用成功的回調函數 | |
fail | function | 否 | 接口調用失敗的回調函數 | |
complete | function | 否 | 接口調用結束的回調函數(調用成功、失敗都會執行) |
wx.clearStorage()ortry {wx.clearStorageSync()
} catch(e) {// Do something when catch error
}
13.wx.clearStorageSync()
清理本地數據緩存。
wx.clearStorage()
14.wx.exitMiniProgram(Object object)
退出當前小程序。必須有點擊行為才能調用成功。
屬性 | 類型 | 默認值 | 必填 | 說明 |
---|---|---|---|---|
success | function | 否 | 接口調用成功的回調函數 | |
fail | function | 否 | 接口調用失敗的回調函數 | |
complete | function | 否 | 接口調用結束的回調函數(調用成功、失敗都會執行) |
Onclick(){wx.exitMiniProgram()}
15.wx.showToast(Object object)
顯示消息提示框。
屬性 | 類型 | 默認值 | 必填 | 說明 | 最低版本 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
title | string | 是 | 提示的內容 | ||||||||||||||||||
icon | string | success | 否 | 圖標 | |||||||||||||||||
| |||||||||||||||||||||
image | string | 否 | 自定義圖標的本地路徑,image 的優先級高于 icon | 1.1.0 | |||||||||||||||||
duration | number | 1500 | 否 | 提示的延遲時間 | |||||||||||||||||
mask | boolean | false | 否 | 是否顯示透明蒙層,防止觸摸穿透 | |||||||||||||||||
success | function | 否 | 接口調用成功的回調函數 | ||||||||||||||||||
fail | function | 否 | 接口調用失敗的回調函數 | ||||||||||||||||||
complete | function | 否 | 接口調用結束的回調函數(調用成功、失敗都會執行) |
wx.showToast({title: '成功',icon: 'success',duration: 2000
})orwx.showToast({title: res.message,icon: 'success',duration: 2000,icon:"none"
})
16.wx.reLaunch(Object object)
關閉所有頁面,打開到應用內的某個頁面。
屬性 | 類型 | 默認值 | 必填 | 說明 |
---|---|---|---|---|
url | string | 是 | 需要跳轉的應用內頁面路徑 (代碼包路徑),路徑后可以帶參數。參數與路徑之間使用?分隔,參數鍵與參數值用=相連,不同參數用&分隔;如 'path?key=value&key2=value2' | |
success | function | 否 | 接口調用成功的回調函數 | |
fail | function | 否 | 接口調用失敗的回調函數 | |
complete | function | 否 | 接口調用結束的回調函數(調用成功、失敗都會執行) |
wx.reLaunch({url: '/pages/positons/index?id=1',
})//另一個頁面拿到數據// test
Page({onLoad (option) {console.log(option.query)}
})
17.wx.redirectTo(Object object)
關閉當前頁面,跳轉到應用內的某個頁面。但是不允許跳轉到 tabbar 頁面。
屬性 | 類型 | 默認值 | 必填 | 說明 |
---|---|---|---|---|
url | string | 是 | 需要跳轉的應用內非 tabBar 的頁面的路徑 (代碼包路徑), 路徑后可以帶參數。參數與路徑之間使用?? ?分隔,參數鍵與參數值用?= ?相連,不同參數用?& ?分隔;如 'path?key=value&key2=value2' | |
success | function | 否 | 接口調用成功的回調函數 | |
fail | function | 否 | 接口調用失敗的回調函數 | |
complete | function | 否 | 接口調用結束的回調函數(調用成功、失敗都會執行) |
wx.redirectTo({url: '/pages/project/index?id=1'
})
18.wx.getLaunchOptionsSync()
獲取小程序啟動時的參數。與?App.onLaunch?的回調參數一致。
啟動參數:
屬性 | 類型 | 說明 | 最低版本 | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
path | string | 啟動小程序的路徑 (代碼包路徑) | ||||||||||||||||||||||
scene | number | 啟動小程序的場景值 | ||||||||||||||||||||||
query | Object | 啟動小程序的 query 參數 | ||||||||||||||||||||||
shareTicket | string | shareTicket,詳見獲取更多轉發信息 | ||||||||||||||||||||||
referrerInfo | Object | 來源信息。從另一個小程序、公眾號或 App 進入小程序時返回。否則返回?{} 。(參見后文注意) | ||||||||||||||||||||||
| ||||||||||||||||||||||||
forwardMaterials | Array.<Object> | 打開的文件信息數組,只有從聊天素材場景打開(scene為1173)才會攜帶該參數 | ||||||||||||||||||||||
| ||||||||||||||||||||||||
chatType | number | 從微信群聊/單聊打開小程序時,chatType 表示具體微信群聊/單聊類型 | ||||||||||||||||||||||
| ||||||||||||||||||||||||
apiCategory | string | API 類別 | 2.20.0 | |||||||||||||||||||||
|
返回有效 referrerInfo 的場景
場景值 | 場景 | appId含義 |
---|---|---|
1020 | 公眾號 profile 頁相關小程序列表 | 來源公眾號 |
1035 | 公眾號自定義菜單 | 來源公眾號 |
1036 | App 分享消息卡片 | 來源App |
1037 | 小程序打開小程序 | 來源小程序 |
1038 | 從另一個小程序返回 | 來源小程序 |
1043 | 公眾號模板消息 | 來源公眾號 |
1069 | 移動應用 | 來源App |
不同 apiCategory 場景下的 API 限制
X
?表示 API 被限制無法使用;不在表格中的 API 不限制。
default | nativeFunctionalized | browseOnly | embedded | |
---|---|---|---|---|
navigateToMiniProgram | X | X | ||
openSetting | X | |||
<button open-type="share"> | X | X | X | |
<button open-type="feedback"> | X | |||
<button open-type="open-setting"> | X | |||
openEmbeddedMiniProgram | X | X | X |
注意:
部分版本在無referrerInfo
的時候會返回?undefined
,建議使用?options.referrerInfo && options.referrerInfo.appId
?進行判斷。
let LaunchOptions = wx.getLaunchOptionsSync();
19.App(Object object)
注冊小程序。接受一個?Object
?參數,其指定小程序的生命周期回調等。
App() 必須在?app.js
?中調用,必須調用且只能調用一次。不然會出現無法預期的后果。
屬性 | 類型 | 默認值 | 必填 | 說明 | 最低版本 |
---|---|---|---|---|---|
onLaunch | function | 否 | 生命周期回調——監聽小程序初始化。 | ||
onShow | function | 否 | 生命周期回調——監聽小程序啟動或切前臺。 | ||
onHide | function | 否 | 生命周期回調——監聽小程序切后臺。 | ||
onError | function | 否 | 錯誤監聽函數。 | ||
onPageNotFound | function | 否 | 頁面不存在監聽函數。 | 1.9.90 | |
onUnhandledRejection | function | 否 | 未處理的 Promise 拒絕事件監聽函數。 | 2.10.0 | |
onThemeChange | function | 否 | 監聽系統主題變化 | 2.11.0 | |
其他 | any | 否 | 開發者可以添加任意的函數或數據變量到?Object ?參數中,用?this ?可以訪問 |
關于小程序前后臺的定義和小程序的運行機制,請參考運行機制章節。
onLaunch(Object object)
小程序初始化完成時觸發,全局只觸發一次。參數也可以使用?wx.getLaunchOptionsSync?獲取。
參數:與?wx.getLaunchOptionsSync?一致
onShow(Object object)
小程序啟動,或從后臺進入前臺顯示時觸發。也可以使用?wx.onAppShow?綁定監聽。
參數:與?wx.onAppShow?一致
onHide()
小程序從前臺進入后臺時觸發。也可以使用?wx.onAppHide?綁定監聽。
onError(String error)
小程序發生腳本錯誤或 API 調用報錯時觸發。也可以使用?wx.onError?綁定監聽。
參數:與?wx.onError?一致
onPageNotFound(Object object)
基礎庫 1.9.90 開始支持,低版本需做兼容處理。
小程序要打開的頁面不存在時觸發。也可以使用?wx.onPageNotFound?綁定監聽。注意事項請參考?wx.onPageNotFound。
參數:與?wx.onPageNotFound?一致
示例代碼:
App({onPageNotFound(res) {wx.redirectTo({url: 'pages/...'}) // 如果是 tabbar 頁面,請使用 wx.switchTab}
})
onUnhandledRejection(Object object)
基礎庫 2.10.0 開始支持,低版本需做兼容處理。
小程序有未處理的 Promise 拒絕時觸發。也可以使用?wx.onUnhandledRejection?綁定監聽。注意事項請參考?wx.onUnhandledRejection。
參數:與?wx.onUnhandledRejection?一致
onThemeChange(Object object)
基礎庫 2.11.0 開始支持,低版本需做兼容處理。
系統切換主題時觸發。也可以使用?wx.onThemeChange?綁定監聽。
參數:與?wx.onThemeChange?一致
App({onLaunch (options) {// Do something initial when launch.},onShow (options) {// Do something when show.},onHide () {// Do something when hide.},onError (msg) {console.log(msg)},globalData: 'I am global data'
})
20.wx.getMenuButtonBoundingClientRect()
獲取菜單按鈕(右上角膠囊按鈕)的布局位置信息。坐標信息以屏幕左上角為原點。
菜單按鈕的布局位置信息:
屬性 | 類型 | 說明 |
---|---|---|
width | number | 寬度,單位:px |
height | number | 高度,單位:px |
top | number | 上邊界坐標,單位:px |
right | number | 右邊界坐標,單位:px |
bottom | number | 下邊界坐標,單位:px |
left | number | 左邊界坐標,單位:px |
const res = wx.getMenuButtonBoundingClientRect()console.log(res.width)
console.log(res.height)
console.log(res.top)
console.log(res.right)
console.log(res.bottom)
console.log(res.left)
21.wx.createSelectorQuery()
返回一個 SelectorQuery 對象實例。在自定義組件或包含自定義組件的頁面中,應使用?this.createSelectorQuery()
?來代替。
const query = wx.createSelectorQuery()
query.select('#the-id').boundingClientRect()
query.selectViewport().scrollOffset()
query.exec(function(res){res[0].top // #the-id節點的上邊界坐標res[1].scrollTop // 顯示區域的豎直滾動位置
})