> 技术文档 > uniapp跨平台开发---微信小程序onBackPress无效_uniapp onbackpress

uniapp跨平台开发---微信小程序onBackPress无效_uniapp onbackpress


onBackPress

当用户进行以下操作时,会触发该函数

  • Android 实体返回键 (from = backbutton)
  • 顶部导航栏左边的返回按钮 (from = backbutton)
  • 返回 API,即 uni.navigateBack() (from = navigateBack)

注意事项:

  • 只有在该函数中返回值为 true 时,才表示不执行默认的返回,自行处理此时的业务逻辑。
  • 当不阻止页面返回却直接调用页面路由相关接口(如:uni.switchTab)时,可能会导致页面显示异常,可以通过延迟调用路由相关接口解决。
  • 不返回或返回其它值,均会执行默认的返回行为。
  • H5 平台,顶部导航栏返回按钮支持 onBackPress(),浏览器默认返回按键及Android手机实体返回键不支持 onBackPress()
  • 暂不支持直接在自定义组件中配置该函数,目前只能是在页面中来处理。

场景描述

在微信小程序中,二级页面中间有跳转其他页面需求,但是左上角返回按钮,回根据你的路由顺序返回,这样就会造成没有返回一级页面,需要强制返回固定页面,uniapp 中有onBackPress钩子函数,可以设置返回触发自定义事件(必须有返回true),但是此钩子在微信小程序中不生效

onBackPress(event) { uni.switchTab({  url: \'/pages/home/index\' }) return true },

替代方案

在onUnload钩子,页面卸载时设置返回指向

onUnload() { uni.switchTab({ url: \'/pages/home/index\' }) },