登录  /  注册
首页 > web前端 > js教程 > 正文

cordova打包成webapp方法详解

小云云
发布: 2018-01-09 14:35:40
原创
2951人浏览过

本文主要介绍了详解cordova打包成webapp的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。

在项目开发中,需要将h5页面打包成app,这个时候我们可以使用cordova来打包。在官方文档中,我们可以了解到创建一个app十分简单,你的电脑上有nodejs就行,我们可以跟着官方文档一步一步来,添加安卓平台和ios平台。整个项目结构搭建完毕后,我们可以将我们需要打包的webapp页面全部塞到这个项目结构中。接下来就是麻烦的地方了,如何进行平台开发,也就是如何将我们的项目打包成一个可安装的文件。

一:设置环境变量:

1.设置JAVA_HOME环境变量,指定为JDK安装路径

2.设置ANDROID_HOME环境变量,指定为Android SDK安装路径

3.同时也要添加Android SDK的tools和platform-tools目录到你的PATH

这里需要注意的是设置ANDROID_HOME环境变量,我们可以将android studio安装到我们的电脑中,在安装过程中android studio会自动将Android SDK安装到我们的电脑里,这个时候记住这个地址就行了,如图(下面那一行的路径就是Android SDK):

二:报这种错误的时候:Error:Minimum supported Gradle version is xxxx.  Current version is xxxx.

当时我在打包的时候报这钟错误,在网上查到了原因,是因为android studio更新了Gradle的版本,这个时候解决的步骤如下:

1:打开android studio,找到setting,搜索gradle,如图进行设置(具体路径各异):

三:Windows cordova build Error: Could not find gradle wrapper within Android SDK. Might need to update

解决办法:

  1. 下载 Android SDK tools package(https://dl.google.com/android/repository/tools_r25.2.3-windows.zip)

  2. 进入 C:\Users\\AppData\Local\Android\sdk目录

  3. 备份tools目录

  4. 将压缩包中的tools目录解压到这个目录下

  5. 进入工程目录,再次运行 “cordova build android”。

四:安装cordova-plugin-splashscreen报错:

这个时候可能的原因是你已经打包过apk文件了,你需要将apk文件删除,然后再安装。

五:打包vue项目时遇到的问题

 1:使用npm run build打包到哪?

如图,Qianne是我vue项目的名称,我在这个文件夹打开了dos窗口,然后创建一个app框架,名为myApp1。然后我将config里index.js中修改:

index: path.resolve(__dirname, '../myApp1/www/index.html'),
 assetsRoot: path.resolve(__dirname, '../myApp1/www'),
 assetsSubDirectory: 'static',
 assetsPublicPath: './',
登录后复制

这里的路径直接指向了myApp1下www文件夹。然后我们在vue项目中运行npm run build。这个时候我们就把打包后的文件直接放在了myApp1下www文件夹。此时我们还要将

cordova.js和cordova_plugins.js文件放进www文件夹中,与index.html同级。(记住此时会覆盖index.html,我们要将index.html中引用cordova.js的那句代码复制到打包后的index.html中)。

2:直接打开打包后的index.html,路由居然没作用?

我的解决办法:

找到vue项目中的main.js,将其中路由的代码的mode改为“hash”,我之前是“history”所以路由一直没用

const router = new VueRouter({

 mode: 'hash',

 routes

})
登录后复制

之后我们再打包一次,如果打包后的index.html打开后路由正常,那么恭喜你。这个时候我们在myApp1下进入dos窗口,输入cordova build android,打包成apk文件。

六:app的logo启动页面应该放在哪里?

 

在项目结构中, 我们需要安装splashscreen插件:

cordova plugin add cordova-plugin-splashscreen
登录后复制

我们在config.xml中插入以下代码:

 <platform>

  <allow-intent></allow-intent>

   <icon></icon>

  <icon></icon>

  <icon></icon>

  <icon></icon>

  

  <!-- 以下是欢迎页面,可根据需要进行添加 -->

  <splash></splash> 

  <splash></splash> 

  <splash></splash> 

  <splash></splash> 

  <splash></splash> 

  <splash></splash> 

  <splash></splash> 

  <splash></splash> 

 </platform><platform> 

 <!-- iOS 8.0+ --> 

 <!-- iPhone 6 Plus --> 

 <icon></icon> 

 <!-- iOS 7.0+ --> 

 <!-- iPhone / iPod Touch --> 

 <icon></icon> 

 <icon></icon> 

 <!-- iPad --> 

 <icon></icon> 

 <icon></icon> 

 <!-- iOS 6.1 --> 

 <!-- Spotlight Icon --> 

 <icon></icon> 

 <icon></icon> 

 <!-- iPhone / iPod Touch --> 

 <icon></icon> 

 <icon></icon> 

 <!-- iPad --> 

 <icon></icon> 

 <icon></icon> 

 <!-- iPhone Spotlight and Settings Icon --> 

 <icon></icon> 

 <icon></icon> 

 <!-- iPad Spotlight and Settings Icon --> 

 <icon></icon> 

 <icon></icon> 

 <!-- 以下是欢迎页面,可根据需要进行添加 -->

 <splash></splash> 

 <splash></splash> 

 <splash></splash> 

 <splash></splash> 

 <splash></splash> 

 <splash></splash> 

 <splash></splash> 

 <splash></splash> 

 <splash></splash> 

 <splash></splash> 

</platform>
登录后复制

同样的,我们要在res文件夹下的对应文件夹中放入相应的logo或者图片.

相关推荐:

如何基于WebStorm, React和Ant.Design开发WebAppDemo

javascript - webapp开发 怎么判断用户消息是否已读或未读

webapp 外部css的引用_html/css_WEB-ITnose

以上就是cordova打包成webapp方法详解的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号