通过cordova将vue项目打包为webapp的方法


Posted in Javascript onFebruary 02, 2019

准备工作:需要之前配置好vue-cli脚架构,安装好cordova环境。下面开始对vue.js项目进行打包,打包环境为Android。

可以看下我的github:https://github.com/padipata ,里面有我自己写的vue项目,喜欢的给个关注呗。

1.添加cordova项目

$ cordova create myApp1 org.apache.cordova.myApp myApp2

其中:

  • myApp1:cordova目录名
  • org.apache.cordova.myApp: 包名
  • myApp2: 项目名(在config.xml的<name>中查看)

2.在vue中添加cordova的配置

myApp1/www/index.html----->vue/index.html

  • 将myApp1/www/index.html中所有的<meta>拷贝到vue/index.html中
  • 将myApp1/www/index.html中<script>关于cordova.js的引用拷贝到vue/index.html中

myApp1/www/js/index.js----->vue/vuex/main.js

var app = {
// Application Constructor
initialize: function() {
thisbindEvents();
},
// Bind Event Listeners
//
// Bind any events that are required on startup Common events are:
// 'load', 'deviceready', 'offline', and 'online'
bindEvents: function() {
documentaddEventListener('deviceready', thisonDeviceReady, false);
},
// deviceready Event Handler
//
// The scope of 'this' is the event In order to call the 'receivedEvent'
// function, we must explicitly call 'appreceivedEvent();'
onDeviceReady: function() {
appreceivedEvent('deviceready');
},
// Update DOM on a Received Event
receivedEvent: function(id) {
var parentElement = documentgetElementById(id);
var listeningElement = parentElementquerySelector('listening');
var receivedElement = parentElementquerySelector('received');
listeningElementsetAttribute('style', 'display:none;');
receivedElementsetAttribute('style', 'display:block;');
consolelog('Received Event: ' + id);
}
};
appinitialize();

1)内容拷贝到vue/src/vuex/main.js中

2)onDeviceReady时启动app

onDeviceReady: function () {
//appreceivedEvent('deviceready');
appRouterstart(App, 'app')
windownavigatorsplashscreenhide()
}

3.创建android项目

终端中进入到myApp1 项目,执行以下命令:

cordova platform add android这时候vue项目中会得到一个android文件夹,里面包含一个测试版本的apk,可以传输到手机上调试。

4.添加cordova插件

终端中进入到vue项目,执行以下命令:

cordova plugin add xxxx

5. 构建 vue项目

通过cordova将vue项目打包为webapp的方法

许多人掉过这个坑,打包出来的apk是一个cordova默认的空白项目,因此,需要在打包vue之前在这里把配置文件修改过来。 

终端中进入到vue项目,执行以下命令:npm run build

6.文件转移

将dist文件夹下的文件,拷贝到cordova/platforms/androd/assets/www目录下 (index.html替代掉原本的)

7.构建cordova项目

从终端进入到myApp1/platforms/android/cordova目录下,执行以下命令:

cordova build android //构建apk 

配置JDK环境(这里只对mac os进行记录,Win系统请自行脑补):

cd ~ 进入到~目录

touch .bash_profile

vi .bash_profile 使用vi编辑器编辑 .bash_profile文件

然后输入 i ,在vi编辑器里面输入 i 的意思是开始编辑。

vi编辑器里面的内容如下:

JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home
CLASSPAHT=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH:
export JAVA_HOME
export CLASSPATH
export PATH 

然后退出vi编辑器使用如下命令:(个人习惯 :wq!回车)

1. 输入ese

2. 输入冒号: wq

3. 保存退出

如果以上修改完毕切正确,那么接下来就是让配置的环境变量生效,使用如下命令:source .bash_profile

完毕以后查看下当前的java 版本是否正确输入如下命令:java -version

如果是预想中的1.8,那么恭喜你,你这个时候就可以执行: cordova build android

cordova run android //构建apk,并安装到连接的设备上(按个人需求)

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

Javascript 相关文章推荐
关于Mozilla浏览器不支持innerText的解决办法
Jan 01 Javascript
浅谈Javascript面向对象编程
Nov 15 Javascript
jQuery获得内容和属性方法及示例
Dec 02 Javascript
JS函数重载的解决方案
May 13 Javascript
深入分析原生JavaScript事件
Dec 29 Javascript
原生js实现类似弹窗抖动效果
Apr 02 Javascript
jQuery通过Ajax返回JSON数据
Apr 28 Javascript
你知道setTimeout是如何运行的吗?
Aug 16 Javascript
JS实现改变HTML上文字颜色和内容的方法
Dec 30 Javascript
Angularjs 实现动态添加控件功能
May 25 Javascript
如何用webpack4带你实现一个vue的打包的项目
Jun 20 Javascript
详解babel升级到7.X采坑总结
May 12 Javascript
用Cordova打包Vue项目的方法步骤
Feb 02 #Javascript
JS实现数组去重及数组内对象去重功能示例
Feb 02 #Javascript
JS实现的Object数组去重功能示例【数组成员为Object对象】
Feb 01 #Javascript
JavaScript动态创建二维数组的方法示例
Feb 01 #Javascript
Electron 如何调用本地模块的方法
Feb 01 #Javascript
详解使用webpack+electron+reactJs开发windows桌面应用
Feb 01 #Javascript
原来JS还可以这样拆箱转换详解
Feb 01 #Javascript
You might like
Thinkphp实现MySQL读写分离操作示例
2014/06/25 PHP
PHP基于进程控制函数实现多线程
2020/12/09 PHP
JavaScript 反科里化 this [译]
2012/09/20 Javascript
jQuery Ajax中的事件详细介绍
2015/04/16 Javascript
使用vue.js制作分页组件
2016/06/27 Javascript
jQuery仿京东商城楼梯式导航定位菜单
2016/07/25 Javascript
jquery的checkbox,radio,select等方法小结
2016/08/30 Javascript
jquery 多个radio的click事件实例
2016/12/03 Javascript
Javascript for in的缺陷总结
2017/02/03 Javascript
详解angular2采用自定义指令(Directive)方式加载jquery插件
2017/02/09 Javascript
BootStrap Validator 根据条件在JS中添加或移除校验操作
2017/10/12 Javascript
vue中如何创建多个ueditor实例教程
2017/11/14 Javascript
浅谈Vue CLI 3结合Lerna进行UI框架设计
2019/04/14 Javascript
vue框架中props的typescript用法详解
2020/02/17 Javascript
python操作xml文件详细介绍
2014/06/09 Python
python实现textrank关键词提取
2018/06/22 Python
从请求到响应过程中django都做了哪些处理
2018/08/01 Python
解决PyCharm的Python.exe已经停止工作的问题
2018/11/29 Python
pymysql模块的操作实例
2019/12/17 Python
Python基于template实现字符串替换
2020/11/27 Python
Python基于爬虫实现全网搜索并下载音乐
2021/02/14 Python
利用HTML5 Canvas制作一个简单的打飞机游戏
2015/05/11 HTML / CSS
C语言面试题
2015/10/30 面试题
高中毕业自我鉴定
2013/12/22 职场文书
学校安全教育制度
2014/01/31 职场文书
《中国的气候》教学反思
2014/02/23 职场文书
《沉香救母》教学反思
2014/04/19 职场文书
技能比武方案
2014/05/21 职场文书
团干部培训方案
2014/06/03 职场文书
基层党员对照检查材料
2014/08/25 职场文书
2015年药店店长工作总结
2015/04/29 职场文书
《狼王梦》读后感:可怜天下父母心
2019/11/01 职场文书
python中pandas.read_csv()函数的深入讲解
2021/03/29 Python
MySQL数字类型自增的坑
2021/05/07 MySQL
Python 阶乘详解
2021/10/05 Python
分享一个vue实现的记事本功能案例
2022/04/11 Vue.js