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

直接上代码

html 复制代码
<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <meta name="viewport" content="viewport-fit=cover,width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
  <title></title>

 </head>

 <body>

 </body>
 <script>
      function plusReady() {
          var zxlmweb = plus.webview.create("这里填写域名")
          zxlmweb.show(); // 显示窗口
          var first = null;
          plus.key.addEventListener("backbutton", function() { //监听返回按键
              zxlmweb.canBack(function(e) { //监听webview窗口是否可以返回
                  if(e.canBack) { //可以返回
                      zxlmweb.back(); //返回上一页面
                  } else { //不可以返回
                      //处理逻辑:1秒内,连续两次按返回键,则退出应用;
                      //首次按键,提示'再按一次退出应用'
                      if (!first) {
                          first = new Date().getTime();
                          console.log('再按一次退出应用');
                          setTimeout(function() {
                              first = null;
                          }, 1000);
                      } else {
                          if (new Date().getTime() - first < 1000) {
                              plus.runtime.quit();//退出app
                          }
                      }
                  }
              });
          }, false);
      }
      if(window.plus) {
          plusReady();
      } else {
          document.addEventListener('plusready', plusReady, false);
      }

 </script>
</html>

以下介绍 是CHAT GPT解释的

这段代码是一个HTML文件的结构,它包含了一些基础的网页元素和一个JavaScript脚本,主要用于移动应用中的webview行为控制。我将逐部分为您详细解释:

HTML部分

  1. <!DOCTYPE html>: 声明文档类型,这里是HTML5。
  2. <html>: HTML文档的根元素。
  3. <head>: 包含了文档的元(meta)数据。
    • <meta charset="UTF-8">: 设置文档的字符编码为UTF-8。
    • <meta name="viewport" content="...">: 设置视口,使网页在不同设备上显示更加适配。这里的参数包括初始缩放比例、最大最小缩放比例等,以适应移动设备屏幕。
    • <title>: 网页标题标签,这里没有设置具体的标题。
  4. </head>: 结束头部标签。
  5. <body>: 网页的主体内容部分,这里没有包含可见的HTML内容。
  6. </body>: 结束主体标签。

JavaScript部分

  1. function plusReady() {...}: 定义了一个函数plusReady,主要用于处理webview的行为。
  2. var zxlmweb = plus.webview.create("这里填写域名"): 创建一个新的webview窗口,加载指定的域名。
  3. zxlmweb.show(): 显示这个webview窗口。
  4. plus.key.addEventListener("backbutton", function() {...}): 添加监听事件,当用户点击返回键时执行。
  5. zxlmweb.canBack(function(e) {...}): 检查webview是否可以返回上一个页面。
  6. 退出应用逻辑:如果webview无法返回上一个页面,则实现双击返回键退出应用的逻辑。
  7. if(window.plus) {...}document.addEventListener('plusready', plusReady, false): 这部分代码检查plus对象是否已经加载。如果已加载,则直接调用plusReady;如果未加载,则在plusready事件发生时调用。

总结

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

相关推荐
kunkun1011 天前
关于软件测试中的bug
python·bug·压力测试
用键盘当武器的秋刀鱼2 天前
springboot-bug
java·spring boot·bug
星辰&与海2 天前
报错 watcgdog: BUG; soft lockup -CPU#0 stuck for 26s! [swapper/0:1]
bug
无人等人3 天前
CyberRT(apollo) 定时器模块简述及bug分析
bug
fengdongnan3 天前
bug小记
bug
天才测试猿3 天前
解决Selenium元素拖拽不生效Bug
linux·自动化测试·软件测试·python·selenium·测试工具·bug
四角小裤儿儿3 天前
软件测试(三)——Bug篇
功能测试·面试·单元测试·bug
开发者工具分享4 天前
测试是如何跟进和管理 bug
bug
Htht1116 天前
【Linux】之【Bug】VMware 虚拟机开机 一直卡在黑屏左上角下划线闪烁界面
linux·运维·bug
你的坚定8 天前
记Android12上一个原生bug引起的system_server crash
bug