uniapp监听物理返回按钮事件

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生命周期。

javascript 复制代码
  onBackPress(e) {
    console.log('e', e)
    // backbutton:物理按键返回
  	if (e.from === 'backbutton') {
  		// 唤醒保存询问弹窗
  		this.back()
  		// 阻止返回
  		return true 
  	}
  },