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

相关推荐
沙尘暴炒饭14 小时前
关于uni-forms组件的bug【提交的字段[‘*‘]在数据库中并不存在】
bug
Kisorge1 天前
【C语言】代码BUG排查方式
c语言·开发语言·bug
安卓机器2 天前
探索 Python编程 调试案例:配置日志记录器查看程序运行bug
bug
树懒_Zz4 天前
记录 io.springfox 3.0.0 整合 spring boot 2.6.x 由于 springfox bug 引发问题
windows·spring boot·bug
每天进步一大步4 天前
webSokect安卓和web适配的Bug 适用实时语音场景
android·前端·bug·web
JWASX4 天前
【BUG记录】Apifox 参数传入 + 号变成空格的 BUG
java·bug·urlencoder·urldecoder
初遇你时动了情4 天前
解决react 路由切换,页面闪屏的bug
javascript·react.js·bug
老赵的博客4 天前
QString转const char* bug
bug
andlbds5 天前
解决PCL库中pcl::VoxelGrid降采样Bug
c++·bug
乌漆嘎嘎黑5 天前
XIO: fatal IO error 22 (Invalid argument) on X server “localhost:10.0“【小白找bug】
pytorch·python·bug·matplotlib·mobaxterm