[TOC]
# uniapp 自定義頁面返回邏輯
在uniapp[頁面生命周期](https://uniapp.dcloud.io/api/lifecycle?id=%e9%a1%b5%e9%9d%a2%e7%94%9f%e5%91%bd%e5%91%a8%e6%9c%9f)中,有一個onBackPress的事件監聽,可以監聽APP的導航欄返回和物理按鍵返回。
返回的數據如下:
```js
event = {from: backbutton | navigateBack}
```
當用戶進行以下操作時,會觸發該函數:
- Android 實體返回鍵 (from = backbutton)
- 頂部導航欄左邊的返回按鈕 (from = backbutton)
- 返回 API,即 uni.navigateBack() (from = navigateBack)
注意事項:
- 只有在該函數中返回值為 true 時,才表示不執行默認的返回,自行處理此時的業務邏輯。
- 不返回或返回其它值,均會執行默認的返回行為。
- H5 平臺,頂部導航欄返回按鈕支持 `onBackPress()`,瀏覽器默認返回按鍵及Android手機實體返回鍵不支持 `onBackPress()`
- 暫不支持直接在自定義組件中配置該函數,目前只能是在頁面中來處理。
舉例:
```js
onBackPress(event) {
if (event.from === 'navigateBack') {
return false
}
if (this.mode === 2) {
this.mode = 1
return true
}
}
```
## 參考資料
- [uni-app自定義返回邏輯教程](https://ask.dcloud.net.cn/article/35120)
- uniapp項目搭建
- 通過cli創建uniapp項目
- uniapp平臺特性
- uniapp基礎
- 在uniapp中使用字體圖標
- uniapp全局變量的幾種實現方式
- uniapp自定義頁面返回邏輯
- uniapp進階
- 在網頁中打開uniapp應用
- uniapp狀態欄與導航欄
- 在uniapp中優雅地使用WebView
- uniapp Android離線打包
- Android原生工程搭建
- 在uni-app項目中集成Android原生工程
- uniapp熱更新和整包更新
- Android Q啟動白屏的問題
- uniapp原生插件開發與使用
- Android 原生插件使用
- uniapp基礎模塊配置
- uniapp定位及地圖
- uniapp第三方支付、登錄
- 常見問題及解決方案
- Android端常見問題解決方案
- H5端常見問題解決方案
- 微信小程序常見問題解決方案