1. uniapp監聽物理返回按鈕事件
??uniapp 監聽頁面返回功能有使用onBackPress方法和使用onUnload方法。
1.1. 使用onBackPress方法
??在uniapp中,可以使用onBackPress方法來監聽頁面返回事件。這個方法與onLoad等生命周期方法同級,可以監聽左上角返回按鈕或android返回鍵的點擊事件具體實現步驟如下:
(1)在需要監聽返回事件的頁面中,添加onBackPress方法。
(2)在onBackPress方法中,通過event.from屬性判斷返回事件的來源。
(3)根據不同的來源,執行相應的返回操作。
1.2. 使用onUnload方法
??對于不支持onBackPress方法的平臺,如微信小程序,可以使用onUnload方法來監聽頁面卸載事件。當頁面關閉時,onUnload方法會被執行。可以在onUnload方法中,通過uni.setStorageSync方法存儲一個變量,然后在需要返回的頁面中,通過uni.getStorageSync方法判斷緩存中是否存在該變量。如果存在,則跳轉到指定頁面,并刪除緩存中的變量;如果不存在,則執行默認的返回操作。具體實現步驟如下:
(1)在需要監聽返回事件的頁面中,添加onUnload方法。
(2)在onUnload方法中,使用uni.setStorageSync方法存儲一個變量。
(3)在需要返回的頁面中,使用uni.getStorageSync方法判斷緩存中是否存在該變量。
(4)根據判斷結果,執行相應的返回操作。
1.3. 示例代碼
??開發中需要用戶使用手機自帶返回(物理返回)時跳出彈窗詢問是否保存。在需要觸發截停返回的頁面中使用。開發中需要用戶使用手機自帶返回(物理返回)時跳出彈窗詢問是否保存。在需要觸發截停返回的頁面中使用onBackPress生命周期。
onBackPress(e) {console.log('e', e)// backbutton:物理按鍵返回if (e.from === 'backbutton') {// 喚醒保存詢問彈窗this.back()// 阻止返回return true }},