通过cordova将vue项目打包为app

Posted 成长中的小牛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过cordova将vue项目打包为app相关的知识,希望对你有一定的参考价值。

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

 

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

  1. var app = {
  2. // Application Constructor
  3. initialize: function() {
  4. this.bindEvents();
  5. },
  6. // Bind Event Listeners
  7. //
  8. // Bind any events that are required on startup. Common events are:
  9. // ‘load‘, ‘deviceready‘, ‘offline‘, and ‘online‘.
  10. bindEvents: function() {
  11. document.addEventListener(‘deviceready‘, this.onDeviceReady, false);
  12. },
  13. // deviceready Event Handler
  14. //
  15. // The scope of ‘this‘ is the event. In order to call the ‘receivedEvent‘
  16. // function, we must explicitly call ‘app.receivedEvent(...);‘
  17. onDeviceReady: function() {
  18. app.receivedEvent(‘deviceready‘);
  19. },
  20. // Update DOM on a Received Event
  21. receivedEvent: function(id) {
  22. var parentElement = document.getElementById(id);
  23. var listeningElement = parentElement.querySelector(‘.listening‘);
  24. var receivedElement = parentElement.querySelector(‘.received‘);
  25. listeningElement.setAttribute(‘style‘, ‘display:none;‘);
  26. receivedElement.setAttribute(‘style‘, ‘display:block;‘);
  27. console.log(‘Received Event: ‘ + id);
  28. }
  29. };
  30. app.initialize();

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

  2)onDeviceReady时启动app

  1. onDeviceReady: function () {
  2. //app.receivedEvent(‘deviceready‘);
  3. appRouter.start(App, ‘app‘)
  4. window.navigator.splashscreen.hide()
  5. }

 

3.创建android项目

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

    cordova platform add android

 

4.添加cordova插件

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

    cordova plugin add xxxx

 

5. 构建 vue项目

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

      npm run build

 

6.文件转移

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

 

7.构建cordova项目

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

    cordova build android    //构建apk  (这里因为安装的cordova是最新的版本6.5.0, 默认的会适配6.0的Android环境,这里需要安装JDK1.8及以上的版本)

  配置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,并安装到连接的设备上  (按个人需求)

 

以上是关于通过cordova将vue项目打包为app的主要内容,如果未能解决你的问题,请参考以下文章

解决 Cordova 打包 vue项目为 APP 后,在安卓平台下 touchMove 事件不生效的问题

Cordova+vue 混合app开发创建Cordova项目

Cordova+vue 混合app开发创建Cordova项目

vue+cordova项目

用Cordova把react app 打包成原生的iOS项目

cordova+vue 项目打包成Android(apk),启动黑屏问题