uniapp 引入 uni-simple-router 后造成 android 真机 物理返回键 退出应用的功能缺失的解决方式

直接上代码,如下:

/*
 * 找到自己系统工程中,对应的router文件(如:src/router/index.js),然后加入 routerErrorEach 的监听即可
 */
import { RouterMount, createRouter } from 'uni-simple-router';
import permission from './permission';

let num = 0;
const router = createRouter({
  platform: process.env.VUE_APP_PLATFORM,
  routes: [...ROUTES],
  routerErrorEach: (error, router) => {
    // uni-simple-router把uniapp默认的退出应用的效果给拦截了,因此需要手动单独处理一下
    if (error.uniActualData.from === 'backbutton') {
      num++;
      if (num > 1) {
        plus.runtime.quit();
      } else {
        plus.nativeUI.toast('再按一次退出应用');
      }
      setTimeout(() => {
        num = 0;
      }, 1500);
    }
    // 路由跳转解锁,否则首页点击物理返回键后,路由锁定,跳转失败...
    if (error.type === 3) {
      router.$lockStatus = false;
    }
  },
});

permission(router);

export { router, RouterMount };

官网-解锁:https://www.hhyang.cn/v2/start/cross/navLock.html
官网-routerErrorEach:https://www.hhyang.cn/v2/api/routerInsatll.html#routererroreach-v-2-0-0

你可能感兴趣的:(Vue,uni-app,android,前端)