解决Hbuilder打包的app返回键直接退出

Hbuilder打包APP时返回键问题的实际解决方案      最近做一个angularJS的商城项目,使用Hbuilder打包app时遇到了返回键直接退出的问题,网上的解决办法机制为判断是否有window.history(或者webview记录)历史记录,有就返回上一级,没有就退出程序,这只能满足一般需要,在我的实际项目中完全不能解决问题。     首先我抛出我用网上常规方法时出现的bug。     第一个bug,当我在app中点击退出登陆时,ap... 阅读详情

问题描述:Hbuilder打包的app如果点击手机返回键,app会直接退出,返回不了上一页。

处理子页面点击

返回键直接退出,无法返回,代码如下:

//这个不是写在首页,写在子页面(子页面才能返回,写在首页点击返回就是退出)
//不用引入mui.js,都是h5方法
document.addEventListener('plusready', function() {
    var webview = plus.webview.currentWebview();
    plus.key.addEventListener('backbutton', function() {
        webview.canBack(function(e) {
            if(e.canBack) {
                webview.back();
            } else {
                webview.close(); //hide,quit
                //plus.runtime.quit();
            }
        })
    });
});

首页点击两次退出程序,代码如下:

//这个写在首页,判断连击两次退出。
//需要引入mui.js版本,我当时测试的时候引入了,如果不想引入把带mui的都删了就可以(或者看下面那个)
mui.plusReady(function() {
                //首页返回键处理
                //处理逻辑:1秒内,连续两次按返回键,则退出应用;
                var first = null;
                plus.key.addEventListener('backbutton', function() {
                    //首次按键,提示‘再按一次退出应用’
                    if (!first) {
                        first = new Date().getTime();
                        mui.toast('再按一次退出应用');
                        setTimeout(function() {
                            first = null;
                        }, 1000);
                    } else {
                        if (new Date().getTime() - first < 1000) {
                            plus.runtime.quit();
                        }
                    }
                }, false);
            });

//不需要mui.js版本
document.addEventListener('plusready', function(a) {
            var first = null;
            plus.key.addEventListener('backbutton', function() {
                    //首次按键,提示‘再按一次退出应用’
                    if (!first) {
                        first = new Date().getTime();
                        console.log('再按一次退出应用');//用自定义toast提示最好
                        setTimeout(function() {
                            first = null;
                        }, 1000);
                    } else {
                        if (new Date().getTime() - first < 1000) {
                            plus.runtime.quit();
                        }
                    }
                }, false);
        });

完整js代码:

//完整版就是,所有页面都引入这一段代码,而上面子页面和首页需要分别引入对应代码

//需要mui.js版本
<script>
document.addEventListener('plusready', function() {
        var webview = plus.webview.currentWebview();
        plus.key.addEventListener('backbutton', function() {
            webview.canBack(function(e) {
                if(e.canBack) {
                    webview.back();             
                } else {
                    //webview.close(); //hide,quit
                    //plus.runtime.quit();
                    mui.plusReady(function() {
                        //首页返回键处理
                        //处理逻辑:1秒内,连续两次按返回键,则退出应用;
                        var first = null;
                        plus.key.addEventListener('backbutton', function() {
                            //首次按键,提示‘再按一次退出应用’
                            if (!first) {
                                first = new Date().getTime();
                                mui.toast('再按一次退出应用');
                                setTimeout(function() {
                                    first = null;
                                }, 1000);
                            } else {
                                if (new Date().getTime() - first < 1500) {
                                    plus.runtime.quit();
                                }
                            }
                        }, false);
                    });
                }
            })
        });
    });

//不需要mui.js版本
document.addEventListener('plusready', function() {
        var webview = plus.webview.currentWebview();
        plus.key.addEventListener('backbutton', function() {
            webview.canBack(function(e) {
                if(e.canBack) {
                    webview.back();             
                } else {
                    //webview.close(); //hide,quit
                    //plus.runtime.quit();
                    //首页返回键处理
                    //处理逻辑:1秒内,连续两次按返回键,则退出应用;
                    var first = null;
                    plus.key.addEventListener('backbutton', function() {
                        //首次按键,提示‘再按一次退出应用’
                        if (!first) {
                            first = new Date().getTime();
                            console.log('再按一次退出应用');
                            setTimeout(function() {
                                first = null;
                            }, 1000);
                        } else {
                            if (new Date().getTime() - first < 1500) {
                                plus.runtime.quit();
                            }
                        }
                    }, false);
                }
            })
        });
    });
</script>

 

单片机笔记十二:华大HC32L136超低功耗设计实战 本文详细介绍了华大HC32L136单片机的超低功耗设计实战,包括深度睡眠模式下仅0.5μA的电流消耗、五种功耗模式的对比与配置、外设使用技巧及硬件级优化方法。通过实际项目案例,展示了如何利用ARM Cortex-M0+内核的HC32L136显著延长电池寿命,适用于智能门锁、额温枪等低功耗设备。 阅读详情

相关推荐

Airsim动态 | 安装ROS包装器(AirSim ROS Wrapper)

本期内容我们将带来在Airsim环境下使用ROS Wrapper的相关教程,以下是AirSim客户端库上的一些ROS Wrapper相关配置。 一、启动 以下步骤适用于 Linux 系统。如果是在 Windows 上运行 AirSim,可以使用 Windows Subsystem for Linux (WSL) 来运行 ROS 包装器,如果不想在主机上安装ROS相关工具,也可以使用Docker容器进行安装。请检查下方内容并按照需求安装,具体内容可以参照最后网址。 如果您的默认 GCC 版本不是8或更高版.

AMOVLAB(阿木实验室) 1776

5+app解决返回键直接退出应用问题

5+app在首页双击返回的话退出应用,在二级页面点击返回的话则返回上一页 document.addEventListener('plusready', function() { var first = null; var webview = plus.webview.currentWebview(); ...

风残落叶的博客 3842

脑影像分析入门:如何用一般线性模型(GLM)处理fMRI数据?

本文为神经影像研究入门者详细解析了如何运用一般线性模型(GLM)处理fMRI数据。文章从GLM的核心原理出发,逐步拆解了从实验设计、构建稳健设计矩阵、模型估计与统计推断,到高阶分析及多重比较校正的全流程,并指出了常见陷阱与结果解读要点,是掌握fMRI数据分析基础的关键指南。

weixin_29091445的博客 400

解决hbuilderx打包网址成为5+app,点击返回按钮直接退出app的BUG

这段代码是一个HTML文件的结构,它包含了一些基础的网页元素和一个JavaScript脚本,主要用于移动应用中的webview行为控制。这个HTML文件主要用于在移动应用中创建一个webview窗口,并通过JavaScript脚本控制这个窗口的导航行为,特别是处理返回键的逻辑,以提供更好的用户体验。这种方法通常用于基于HTML5的移动应用(如使用Cordova, PhoneGap,或类似框架的应用)。

陈钇钇的博客 2866

Diebold-Mariano检验

给定两个预测的预测结果,我们希望比较他们的预测结果,以用于预测模型精度的比较。 Diebold-Mariano检验本质是一个t检验,用于检验替代预测的两个损失序列的平均值是否相等。即,它是一系列损失差的零均值的t检验。在存在自相关的情况下,它使用损失差分时间序列标准差的自相关一致性估计。 注意,在使用DM检验式时,假设损失序列是平稳的。 另外,DM检验在小样本数据时往往会拒绝零假设。对于小样本数据,推荐Harvey, Leybourne and Newbold (HLN)检验【1】; 参考文献 【1】htt

weixin_43948357的博客 6565

为什么你的ESXI无法识别移动硬盘?一步步教你解决USB存储挂载问题

本文深入解析了ESXi无法识别移动硬盘的根本原因,并提供了从诊断到解决的完整方案。核心在于理解ESXi的USB Arbitrator服务机制,通过检查服务状态、内核设备识别及分区表,逐步定位问题。文章详细指导了如何禁用USB仲裁服务以在主机挂载USB存储,或将其直通给虚拟机,并针对大容量硬盘、USB 3.0兼容性等进阶问题给出了实用建议。

qq_27496129的博客 332

5+app处理返回键问题,后退按钮返回上一页

直接上代码,官网的例子是这样的: // H5 plus事件处理 function plusReady(){ // Android处理返回键 plus.key.addEventListener('backbutton',function(){ ('iOS'==plus.os.name)?plus.nativeUI.confirm('确认退出?', function(e){ if(e...

华章酱的博客 3275

【UE4】Hierarchical Instanced Static Mesh——一种速度优于Spawn的实例化物体组件

最近需要在场景中实例出很多个相同的模型,位置也很有规律,并且要对它的位置信息进行更新。 但是一个个拖进去实在太麻烦,就发现了Spawn Actor这个蓝图方法,可以实例一个蓝图类在场景中。 但是由于数量较大,实例化的速度太慢,这时发现了一个神奇的组件——Hierarchical Instanced Static Mesh。 新建一个蓝图类,添加该组件,在细节里添加你要实例化的模型对象。 ...

ColorGalaxy 1万+

关于hbuilder打包app点击手机返回键直接退出app的解决

昨天通过hbuilder将做了一部分的vue项目进行打包成app测试,发现打包成的app点击手机的返回键的时候直接退出了app,并不会返回上一页 于是去网上查了一下终于解决了这个问题 参考博客链接:https://blog.youkuaiyun.com/qq_25252769/article/details/76913083 说明:我项目中没有用mui.js,所以用下面的方法就可以了,如果用了mui.js的...

xuefeng11111的博客 8958

构建企业级AI税务顾问:优化税收策略与合规

本文深入探讨了构建企业级AI税务顾问的重要性及其在实际应用中的价值。通过分析当前税务领域的挑战和问题,本文详细介绍了AI税务顾问的基本原理、技术架构、核心功能以及实践应用。文章以逐步分析的方式,从背景介绍、核心概念与联系、算法原理讲解、系统分析与架构设计、项目实战到最佳实践与展望,系统性地展示了如何利用AI技术优化税收策略并确保税务合规。文章旨在为企业和税务从业者提供实用的指导,推动AI在税务领域的创新与发展。在当前全球经济一体化的背景下,企业面临着越来越复杂的税务环境。首先,税收法规的复杂性日益增加。

AI天才研究院 1157

YOLOv11【第六章:模型压缩与极致优化篇·第4节】Lamp 剪枝算法:无需超参的自动化剪枝策略!

🏆 本文收录于专栏 《YOLOv11实战:从入门到深度优化》。本专栏围绕 YOLOv11 的改进、训练、部署与工程优化 展开,系统梳理并复现当前主流的 YOLOv11 实战案例与优化方案,内容目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。

**My Coding Family** 1215

解决hbuilder打包cocos app之后,点击手机返回键直接退出app

/** * 以下代码,添加到main.js文件的开头处, * 解决hbuilder打包app之后点击手机返回键直接退出app */ document.addEventListener('plusready', function () { var webview = plus.webv...

chonglangfu5731的博客 612

AI自动化时代:一人公司的崛起与商业机会

AI技术正在重塑商业格局,催生"一人公司"创业新模式。这种轻资产、高效率的商业模式通过AI自动化运营,让个人创业者能以极低成本挑战传统企业。核心机会包括:1)AI自主公司替代人力密集型业务;2)为企业提供AI转型解决方案;3)利用AI工具实现个人创业。创业者需快速验证创意,聚焦人机协作,把握当前AI发展窗口期。未来,AI赋能的"一人公司"将成为商业新常态,带来更高的专业化和灵活性。抓住AI红利,学会人机协作,是个人创业成功的关键。

这里汇聚了前沿的技术分享与实用的开发技巧,带你探索从创意到企业的技术创业之路。 521

HBuilder打包的App返回键直接退出的解决方法

HBuilder打包的App返回键直接退出的解决方法 把下面这段代码放到你vue项目中,重新打包,再放回来;也可以直接添加到index.html里面。 <script type="text/javascript"> document.addEventListener('plusready', function(a) { //等待plus ready后再调用5+ API: // 在这里调用5+ API var first = null; plus.key.addE

qq_36088514的博客 1322

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

esc键退出全屏 vue_解决hbuilder打包vue项目app点击手机返回键直接退出app的问题

通过hbuilder将做了一部分的vue项目进行打包成app测试,发现打包成的app点击手机的返回键的时候直接退出了app,并不会返回上一页于是去网上查了一下终于解决了这个问题mui.js解决参考博客链接:https://blog.youkuaiyun.com/qq_25252769/article/details/76913083首先我们新建一个appback.js文件,名字随便起,然后将下面代码复制进去/...

weixin_31046947的博客 628

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

解决hbuilder打包app之后点击手机返回键直接退出的问题

新建config.js文件 document.addEventListener('plusready', function (a) { let first = null; plus.key.addEventListener('backbutton', function () { //获取地址栏目中的url let urls = location.hash.split('/')[1] if (urls === 'map' || urls === '') {//判断当前是否无后退页 if

weixin_39150852的博客 1434

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Hbuilder打包vue项目生成的App返回键直接退出应用解决方法

1.在vue项目中引入mui 2.在main.js中进行全局注册 //引入mui import mui from './assets/js/mui' Vue.prototype.$mui = mui 3.在webpack.base.conf.js中module.exports 中加入以下代码: externals:{ 'mui':'mui' }, 然后对项目进行打包...

weixin_43748216的博客 4983

vue项目利用Hbuider打包成APP教程,及遇到的坑

1.打包项目 期间遇到的坑 1.1打包的app出现白屏 出现原因:路径不对,需要改config\index.js 解决方法:修改打包的路径。 1.2点击页面不能跳转,报Loading chunk 2 failed.等错误。 出现原因:不能用history配置路由,要用hash 解决办法:修改路由mode属性为hash。 1.3.手机按钮,直接退出程序。 出现原因:无理返回键直接用监听不到路由,会直接退出程序。 解决方法:可以引入mui,就可以正常使用了。 1.在webpack.base.conf.js里

lovevv5211的博客 1623

vue项目打包wap2app项目生成apk保姆级教程适合新手看,建议收藏

已有域名网站打包成apk软件

m0_46907318的博客 1489

前端项目用hbuilder打包成APP后,返回键退出程序的解决办法(通用)

知道你现在心烦意乱,所以废话少说,先说用法,下面代码! 如果能够帮助到你,希望能给一个点赞、关注! 原理:通过plus去设置点击系统返回键的次数代表的含义咯,一目了然。 用法: 将这一个script插入项目的index.html文件头部,详情仔细观察本文最下面的图片,说的再多不如看仔细。 当然你也可以插入你的项目的index.html文件的head标签里面,一样的是可以的。比如: 代码: ......

面对疾风吧 8977

解决Hbuilder打包vue3项目成app后,点击返回按钮直接退出app

plus.nativeUI.toast('再次返回退出应用', { duration: 'short' }) // 此处可以用自定义提示。// 获取当前页面路由名称。解决方法:在项目的src目录下新建一个appback.js文件,判断当前路由是否还有上一层路由,没有就退出应用,有则返回上一层。//判断是否第一次点击返回。/**解决返回直接退出应用的bug */

lionlqq的博客 934

react 通过HBuilder X打包为app后,按返回键退出应用问题解决

react 通过HBuilder X打包为app后,按返回键退出应用问题解决

xwj12138的博客 778
上一篇: Java实现HttpClient发送GET、POST请求(https、http)
下一篇: 关于URLEncoder.encode编码后比对结果不一致的问题
sdx1237
博客等级 码龄11年 24粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值