通过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 相关文章推荐
Extjs中的GridPanel隐藏列会显示在menuDisabled中解决方法
Jan 27 Javascript
jquery实现加载等待效果示例
Sep 25 Javascript
jquery动态改变onclick属性导致失效的问题解决方法
Dec 04 Javascript
js中的caller和callee属性介绍和例子
Jun 07 Javascript
多个js毫秒倒计时同时进行效果
Jan 05 Javascript
JavaScript模拟鼠标右键菜单效果
Dec 08 Javascript
JavaScript“尽快失败”的原则实例详解
Oct 08 Javascript
浅谈react-native热更新react-native-pushy集成遇到的问题
Sep 30 Javascript
Node之简单的前后端交互(实例讲解)
Nov 14 Javascript
jQuery中的类名选择器(.class)用法简单示例
May 14 jQuery
vue项目中在外部js文件中直接调用vue实例的方法比如说this
Apr 28 Javascript
Node.js API详解之 vm模块用法实例分析
May 27 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
php adodb分页实现代码
2009/03/19 PHP
PHP-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
2011/08/15 PHP
关于IIS php调用com组件的权限问题
2012/01/11 PHP
PHP curl 并发最佳实践代码分享
2012/09/05 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
2019/04/16 PHP
Laravel 默认邮箱登录改成用户名登录的实现方法
2019/08/12 PHP
解决laravel-admin 自己新建页面里 js 需要刷新一次的问题
2019/10/03 PHP
js实现不重复导入的方法
2016/03/02 Javascript
浅析AMD CMD CommonJS规范--javascript模块化加载学习心得总结
2016/03/16 Javascript
全面解析Bootstrap中Carousel轮播的使用方法
2016/06/13 Javascript
js实现简单的选项卡效果
2017/02/23 Javascript
JavaScript ES6中export、import与export default的用法和区别
2017/03/14 Javascript
vue.js学习之UI组件开发教程
2017/07/03 Javascript
jquery对table做排序操作的实例演示
2017/08/10 jQuery
详解javascript常用工具类的封装
2018/01/30 Javascript
vue组件与复用详解
2018/04/08 Javascript
jQuery滑动效果实现方法分析
2018/09/05 jQuery
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
2019/07/03 Javascript
ES6 Generator基本使用方法示例
2020/06/06 Javascript
vue-router路由懒加载及实现的3种方式
2021/02/28 Vue.js
python微信跳一跳系列之棋子定位像素遍历
2018/02/26 Python
python贪吃蛇游戏代码
2020/04/18 Python
python提取照片坐标信息的实例代码
2019/08/14 Python
线程安全及Python中的GIL原理分析
2019/10/29 Python
python不相等的两个字符串的 if 条件判断为True详解
2020/03/12 Python
Python 在函数上添加包装器
2020/07/28 Python
python如何绘制疫情图
2020/09/16 Python
美国标志性加大尺码时装品牌:Ashley Stewart
2016/12/15 全球购物
Calphalon美国官网:美国顶级锅具品牌
2020/02/05 全球购物
美国在线艺术商店:HandmadePiece
2020/11/06 全球购物
英语系本科生个人求职信
2013/09/21 职场文书
法学专业应届生求职信
2013/10/16 职场文书
家具厂厂长岗位职责
2014/01/01 职场文书
十八大闭幕感言
2014/01/22 职场文书
计算机数据库专业职业生涯规划书
2014/02/08 职场文书
入党个人总结范文
2015/03/02 职场文书