首先打包你的 vue 项目 生成 dist 文件夹,教程请移步  https://www.cnblogs.com/taohuaya/p/10256670.html

看完上面的教程,请确保 你是 将:

项目目录下的config文件夹里的index.js文件中,将build对象下的assetsPublicPath中的“/”,改为“./”后,打包生成的 dist 文件。

开始使用 HBuiderX 打包。(工具下载地址:http://www.dcloud.io/)

这是我vue 项目打包后的dist 文件。

设置沉浸状态栏:(什么是沉浸状态栏和设置方法 请移步: http://ask.dcloud.net.cn/article/32  地址里的  http://ask.dcloud.net.cn/article/1150)

上图中添加位置的代码:

  1. "statusbar": { //应用可视区域到系统状态栏下透明显示效果
  2. "immersed": true
  3. },

解决打包成App后,单击 手机返回键退出应用的bug。(可以直接把这段代码放到你vue项目中,重新打包,再放回来,也可以直接修改这个index.html)

上图中的代码:

  1. <script type="text/javascript">
  2. //如下代码主要是解决, 打包后的app点击返回键直接退出的bug.
  3. /* 自己写的 toast 提示框 */
  4. //下面用的是调的 Android 自身的 toast方法。 我把我自己写的toast 注释掉
  5. /*
  6. let flag = false;
  7. function toast(tip){
  8. if(flag) return;
  9. let oDiv = document.createElement('div');
  10. let oBody = document.getElementsByTagName('body')[0];
  11. oDiv.innerText = tip;
  12. oDiv.style.background = 'rgba(50, 50, 51, 0.88)';
  13. oDiv.style.color = '#fff';
  14. oDiv.style.textAlign = 'center';
  15. oDiv.style.fontSize = '14px';
  16. oDiv.style.lineHeight = '30px';
  17. oDiv.style.width = '200px';
  18. oDiv.style.borderRadius = '4px';
  19. oDiv.style.position = 'fixed';
  20. oDiv.style.left = '50%';
  21. oDiv.style.transform = 'translateX(-50%)';
  22. oDiv.style.bottom = '100px';
  23. oDiv.style.zIndex = '1000';
  24. oBody.appendChild(oDiv);
  25. flag = true;
  26. setTimeout(function(){
  27. oBody.removeChild(oDiv);
  28. flag = false;
  29. },1000);
  30. }
  31. */
  32. /* 自己写的 toast 提示框---END--- */
  33.  
  34. document.addEventListener('plusready', function(a) { //等待plus ready后再调用5+ API:
  35. //// 在这里调用5+ API
  36. var first = null;
  37. plus.key.addEventListener('backbutton', function() { //监听返回键
  38. //首次按键,提示‘再按一次退出应用’
  39. if (!first) {
  40. first = new Date().getTime(); //获取第一次点击的时间戳
  41. // console.log('再按一次退出应用');//用自定义toast提示最好
  42. // toast('双击返回键退出应用'); //调用自己写的吐丝提示 函数
  43. plus.nativeUI.toast("双击退出", {duration:'short'}); //通过H5+ API 调用Android 上的toast 提示框
  44. setTimeout(function() {
  45. first = null;
  46. }, 1000);
  47. } else {
  48. if (new Date().getTime() - first < 1000) { //获取第二次点击的时间戳, 两次之差 小于 1000ms 说明1s点击了两次,
  49. plus.runtime.quit(); //退出应用
  50. }
  51. }
  52. }, false);
  53. });
  54. </script>

上面这段代码:我参考的文章和文档链接:

https://blog.csdn.net/qq_25252769/article/details/76913083

这个是 H5+ API 的(通过js调取Android等平台的原生方法)学习链接:http://ask.dcloud.net.cn/docs/

至此就基本上完成了,但是还会有一下bug,我时间我再弄。

这里是我效果图:

现纯的bug 是 进入详情页 ,点击返回也只能提示    双击退出, 而不是后退一步。

用HBuilderX 打包 vue 项目 为 App 的步骤的更多相关文章

  1. 使用HBuilderX实现打包vue项目成app

    一.准备开发工具 开发工具:HBuilderX 官网地址:http://www.dcloud.io (标准版需要自己安装插件,app开发版已经把app开发常用的插件安装好了,开箱即用,建议使用开发版) ...

  2. cordava打包vue项目成app

    注意:安装目录不要以中文命名 1.安装cordova :npm install -g cordova 2.安装java jdk :配置环境变量: 1.系统变量:名:JAVA_HOME    值:C:\ ...

  3. 使用Cordova打包Vue项目

    因为公司项目要求, 原本的vue移动端项目, 现在要求能使用定位, 调用摄像头等功能, 并且开发成混合APP. 一个小白的孤军奋战史, 记录一下, 以备后用.... 第一步: 安装cordova 在命 ...

  4. 教你用Cordova打包Vue项目

    现在国内越来越多的开发者使用Vue开发混合app,但是当大家开发完成过后才发现不知道该怎么将Vue项目打包成app. 据我现在的了解打包Vue项目目前流行的就是使用weex和cordova.weex是 ...

  5. 使用electron-packager electron-builder electron-updater 打包vue项目,支持在线更新

    1.如何用electron-packager electron-builder打包vue项目,打包成桌面程序. 步骤一. 执行npm run build 打包你的vue项目. 打包成功后,生成dist ...

  6. electron打包vue项目

    electron是什么 Electron是由Github开发,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库. Electron通过将Chromium和Node.js合并 ...

  7. webpack打包vue项目之后生成的dist文件该怎么启动运行

    亲测,webpack打包vue项目之后生成的dist文件可以部署到 express 服务器上运行. 我的vue项目结构如下: 1. 进入该vue项目目录,打开git bash,执行:npm run b ...

  8. nw打包vue项目 安装包

    接着上篇nw打包vue项目exe中: copy /b nw.exe+dome.nw dome.exe 出现了dome.exe文件之后,要是打算打包成为安装包,网上推荐的是Inno Setup Comp ...

  9. docker 运行jenkins及vue项目与springboot项目(三.jenkins的使用及自动打包vue项目)

    docker 运行jenkins及vue项目与springboot项目: 一.安装docker 二.docker运行jenkins为自动打包运行做准备 三.jenkins的使用及自动打包vue项目 四 ...

随机推荐

  1. Nginx(二) nginx 无法启动

    有时候在客户端输入:nginx 但是终端会输出以下,显示启动失败 nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already i ...

  2. MGR架构 ~ 节点的维护相关问题

    一简介:MGR节点的相关维护二 两种情况   1 MGR读节点异常停止,然后重新启动加入节点进行数据同步   2 MGR读节点新加入集群成员,启动复制进行数据同步三 通用过程  1 新加入节点通过通道 ...

  3. Flask里面session的基本操作

    #session是依赖于flask的session模块 #如果想使用session模块,在配置里必须定义sessionkey from flask import Flask,session #建立对象 ...

  4. python scrapy 报错 DEBUG: Ignoring response 403

    DEBUG: Ignoring response <403 http://movie.douban.com/top250>: HTTP status code is not handled ...

  5. Django入门------基础(1)

    基础 Django 是用 Python 写的一个自由和开放源码 web 应用程序框架.web框架是一套组件,能帮助你更快.更容易地开发web站点.当你开始构建一个web站点时,你总需要一些相似的组件: ...

  6. python第六天函数,定义、调用、不带参函数、带参函数等

    在python定义函数需要用到的关键字是 def  xxxx():,这个关键字就是 defined 的缩写.具体看实例: >>> def hello(): print("你 ...

  7. SpringSecurity个性化用户认证流程

    ⒈自定义登录页面 package cn.coreqi.security.config; import org.springframework.context.annotation.Bean; impo ...

  8. mvc5怎么给所有action都设置几个公用的ViewBag

    最近开发项目中遇到这样的问题,因为有多个同步的页面,所以需要在多个同步页面上有相同的值返回回来,经过一系列的思维,我们把思维整理出来. public ActionResult Index() { Vi ...

  9. 【Nginx】Nginx简介及在CentOS7.0下安装教程

    是什么 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.其特点是占有内存少,并发能力强,事实上nginx的并发能 ...

  10. Linux网络 - 数据包的接收过程【转】

    转自:https://segmentfault.com/a/1190000008836467 本文将介绍在Linux系统中,数据包是如何一步一步从网卡传到进程手中的. 如果英文没有问题,强烈建议阅读后 ...