解决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,或类似框架的应用)。

相关推荐
dj15402252031 小时前
group_concat配置影响程序出bug
android·bug
布值倒区什么name1 小时前
bug日常记录responded with a status of 413 (Request Entity Too Large)
运维·服务器·bug
码农派大星。1 小时前
软件测试--BUG篇
功能测试·bug
国王不在家1 小时前
【bug日志-水】解决本地开发下代理和url同名导致刷新404的问题
bug
阿伟来咯~3 小时前
一些 uniapp相关bug
uni-app·bug
生命几十年3万天1 天前
通宵修bug
bug
LilKevinRay1 天前
【SpringMVC】记录一次Bug——mvc:resources设置静态资源不过滤导致WEB-INF下的资源无法访问
java·笔记·mvc·bug
会发光的猪。1 天前
前端vue3若依框架pnpm run dev启动报错
前端·javascript·vue.js·前端框架·bug
小汤猿人类2 天前
苍穹外卖Bug集合
bug
且行且知3 天前
CubeIDE BUG-project‘hello‘has no explict encoding set hello
bug