专注大型软件系统研发与设计

完美适配更多硬件

13年+开发经验。为您提供更多解决方案

在线咨询客服

绵阳网站建设 新闻资讯

uniapp返回不起作用,连按2次不提示不返回

作者:多店云小编 发布时间:2022-01-09

        uniapp返回不起作用,连按2次不提示信息,也不返回到桌面是什么原因?

网上找了一轮几乎都是

  1. let main = plus.android.runtimeMainActivity();
    //为了防止快速点按返回键导致程序退出重写quit方法改为隐藏至后台
    plus.runtime.quit = function(){
    main.moveTaskToBack(false);
    };
    //重写toast方法如果内容为 ‘再按一次退出应用’ 就隐藏应用,其他正常toast
    plus.nativeUI.toast = (function(str){
    if(str == '再按一次退出應用'){
    main.moveTaskToBack(false);
    return false;
    }else{
    uni.showToast({
    title: '再按一次退出應用',
    icon:'none',
    })
    }
    });


如果我们连按2次都不生效,这个方法对我根本没用。他是在生效的基础上执行的,如果不生效自然没用。

到底是什么导致uniapp返回无效呢?

小编尝试了各种方法,比如重启。新建demo程序居然好好的,此时灵光一闪。uniapp插件市场不是有一款与

vue router相似的插件么?   果然是该插件拦截了返回,但是没有拦截返回上一页。具体原因就是当前页面栈不够了所以抛出一个错(你没有在这里进行操作)。我们打印出来果然好家伙与小编想的一致。

具体到这里修改:修改router文件下如

const router = createRouter({
APP:{
registerLoadingPage: false,
},
platform: process.env.VUE_APP_PLATFORM,
routerErrorEach:({type,level,...args})=>{
router.$lockStatus=false;
if(type===3){
plus.runtime.quit();
}
},
routes: [...ROUTES]
});


重点:routerErrorEach会抛出错误以及等级

type==3说明没有足够的页面栈,没法跳转。此时我们在这里拦截一下执行退出或者后台运行代码即可

多店云软件为您提供互联网引流拓客服务,并提升店铺营回头率 立即咨询

微信咨询

QQ咨询

新闻资讯

联系我们

微信扫一扫

QQ扫一扫

联系电话:15308302173

实力说话,专注大型软件研发