详解Vue webapp项目通过HBulider打包原生APP


Posted in Javascript onJune 29, 2018

Vue webapp项目通过HBulider打包原生APP

1、webapp项目已经通过vue-cli搭建的脚手架写好了,然后通过webpack打包成一个部署文件list,如下:

详解Vue webapp项目通过HBulider打包原生APP

2、打开HBulider,打开目录,选择这个list,项目名称自己更改。(或者直接新建一个app项目,然后把里边的unpackage和manifest这两个保留下来,其他的替换成自己dist文件里边的内容)

详解Vue webapp项目通过HBulider打包原生APP

这个时候是web项目,需要改为APP项目(如果直接新建的app,请忽略此步)

详解Vue webapp项目通过HBulider打包原生APP

更改前:详解Vue webapp项目通过HBulider打包原生APP

更改后: 详解Vue webapp项目通过HBulider打包原生APP

3、在HB中打开这个dist,可以看到有一个manifest.json的文件。这个文件是用来配置应用信息的。入口文件一定要对应好,我用VUE写的单页应用,所以就一个index.html。

详解Vue webapp项目通过HBulider打包原生APP

然后配置图标

详解Vue webapp项目通过HBulider打包原生APP

按着自己项目的要求配置就行了,HB下面列举的很详细。

4、接下来可以通过手机用USB线与电脑连接进行真机调试。(必须通过USB线连接才可以,人家HB不支持什么通过无线连接的方式)windows电脑不用说了,可以用一些360助手什么的就可以解决了。如果你的手机是安卓的,在苹果电脑下面就没那么好搞了。后来通过百度加自己的摸索也搞出来。方法就是在苹果电脑上下载一个使用 Android File Transfer这个软件。要收费时,点击试用就可以了。手机上需要打开usb调试,然后选择 内置光盘 就可以与苹果电脑连接了。手机自己也有提示(真的很暖心)

详解Vue webapp项目通过HBulider打包原生APP

连接成功之后,就可以进行真机调试了。

详解Vue webapp项目通过HBulider打包原生APP

注:网上很多说自己的VUE项目项目打开一片空白,记得改一下config下面的index.js中bulid模块导出的路径。因为index.html里边的内容都是通过script标签引入的,而你的路径不对,打开肯定是空白的。先看一下默认的路径。

module.exports = {
 build: {
  env: require('./prod.env'),
  index: path.resolve(__dirname, '../dist/index.html'),
  assetsRoot: path.resolve(__dirname, '../dist'),
  assetsSubDirectory: 'static',
  assetsPublicPath: '/',
  productionSourceMap: true,

assetsPublicPath默认的是  ‘/'  也就是根目录。而我们的index.html和static在同一级目录下面。  所以要改为  ‘./ '

另外还需要注意一点。src里边router/index.js路由配置里边默认模式是hash,如果你改成了history模式的话,打开也会是一片空白。所以改为hash或者直接把模式配置删除,让它默认的就行 。

// mode: 'history' // 默认hash

5、如果真机测试没有问题。那么就可以真正的进行打包成APP了。

详解Vue webapp项目通过HBulider打包原生APP

详解Vue webapp项目通过HBulider打包原生APP

详解Vue webapp项目通过HBulider打包原生APP

详解Vue webapp项目通过HBulider打包原生APP

详解Vue webapp项目通过HBulider打包原生APP

打包成功后,可以通过手动下载,或者直接打开下载目录里边下载好的。把这个xxxx.apk文件通过qq或者其他的发送到你的手机上,点击安装。就可以了。

6、最后,展示一下手机上的效果。

详解Vue webapp项目通过HBulider打包原生APP

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery 可拖拽的窗体控件实现代码
Mar 21 Javascript
javascript检测对象中是否存在某个属性判断方法小结
May 19 Javascript
js setTimeout 参数传递使用介绍
Aug 13 Javascript
js控制input输入字符解析
Dec 27 Javascript
jQuery对val和atrr("value")赋值的区别介绍
Sep 26 Javascript
jquery果冻抖动效果实现方法
Jan 15 Javascript
JavaScript禁止复制与粘贴的实现代码
May 16 Javascript
微信小程序 地图(map)实例详解
Nov 16 Javascript
多种方式实现js图片预览
Dec 12 Javascript
vue+swiper实现组件化开发的实例代码
Oct 26 Javascript
javascript实现图片轮播代码
Jul 09 Javascript
在vue中通过render函数给子组件设置ref操作
Nov 17 Vue.js
Vue下路由History模式打包后页面空白的解决方法
Jun 29 #Javascript
详解Vue微信授权登录前后端分离较为优雅的解决方案
Jun 29 #Javascript
JavaScript实现仿Clock ISO时钟
Jun 29 #Javascript
vue ssr 指南详读
Jun 29 #Javascript
jQuery实现获取动态添加的标签对象示例
Jun 28 #jQuery
Vue实现textarea固定输入行数与添加下划线样式的思路详解
Jun 28 #Javascript
详解swipe使用及竖屏页面滚动方法
Jun 28 #Javascript
You might like
PHP跳转页面的几种实现方法详解
2013/06/08 PHP
解析zend Framework如何自动加载类
2013/06/28 PHP
php中curl、fsocket、file_get_content三个函数的使用比较
2014/05/09 PHP
php使用curl获取https请求的方法
2015/02/11 PHP
PHP INT类型在内存中占字节详解
2019/07/20 PHP
List the Stored Procedures in a SQL Server database
2007/06/20 Javascript
基于JQuery.timer插件实现一个计时器
2010/04/25 Javascript
浅谈javascript的数据类型检测
2010/07/10 Javascript
javascript拖拽上传类库DropzoneJS使用方法
2013/12/05 Javascript
javascript实现简单的省市区三级联动
2015/05/14 Javascript
jQuery封装的tab选项卡插件分享
2015/06/16 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(二)
2016/05/17 Javascript
Bootstrap笔记—折叠实例代码
2017/03/13 Javascript
详解vue渲染从后台获取的json数据
2017/07/06 Javascript
Vue Spa切换页面时更改标题的实例代码
2017/07/15 Javascript
详解微信小程序调用支付接口支付
2019/04/28 Javascript
ElementUI Tag组件实现多标签生成的方法示例
2019/07/08 Javascript
Vue中的this.$options.data()和this.$data用法说明
2020/07/26 Javascript
Vue页面跳转传递参数及接收方式
2020/09/09 Javascript
Vue使用路由钩子拦截器beforeEach和afterEach监听路由
2020/11/16 Javascript
Python实现把utf-8格式的文件转换成gbk格式的文件
2015/01/22 Python
python实现带错误处理功能的远程文件读取方法
2015/04/29 Python
Python操作Access数据库基本步骤分析
2016/09/19 Python
详解python eval函数的妙用
2017/11/16 Python
Python批处理删除和重命名文件夹的实例
2018/07/11 Python
Django 项目通过加载不同env文件来区分不同环境
2020/02/17 Python
Python关于反射的实例代码分享
2020/02/20 Python
python基于Kivy写一个图形桌面时钟程序
2021/01/28 Python
美国在线珠宝商店:SZUL
2017/02/11 全球购物
英国电动工具购买网站:Anglia Tool Centre
2017/04/25 全球购物
Python里面search()和match()的区别
2016/09/21 面试题
GC是什么?为什么要有GC?
2013/12/08 面试题
演讲稿格式
2014/04/30 职场文书
2014年党员创先争优承诺书
2014/05/29 职场文书
助学贷款贫困证明
2014/09/23 职场文书
世界十大儿童漫画书排名,法国国宝漫画排第五,第二是轰动日本连环
2022/03/18 欧美动漫