美文网首页
cordova学习 - (1) 安装并发布第一个APP

cordova学习 - (1) 安装并发布第一个APP

作者: Coder_不易 | 来源:发表于2017-06-16 15:21 被阅读1332次

    前言

    随着移动无线时代的来临,用户对移动端的使用量逐渐超过PC,而各种设备不同导致的多平台适配问题也越来越突出。随着HTML5的崛起,未来H5统一PC,移动web,Android,IOS的开发已经成为未来的趋势,这就是传说中的大前端时代~

    这是一个前端可以得到不同以往的大发展的时代,同时对开发者的素质也有更高要求。传统的web前端开发者,以及移动端的Android和IOS开发者将会相互跨界,不仅要了解HTML,JS,CSS前端技术,同时要了解到Android和IOS平台的原生开发,对后端服务也要有所了解。

    Cordova是一个将webapp发布成各种不同平台(browser,android,ios等)的移动框架。一个Cordova应用由WebApp,WebView,Cordova Plugins三个部分组成。


    Cordova应用架构
    • WebApp
      这个实际上就是我们的应用主要部分,由HTML,CSS,JS以及其他的图片,媒体文件等资源组成,我们的应用在WebView中运行。
    • WebView
      Cordova负责启用各个不同平台的WebView作为应用的容器。WebView也可以和原生组件混合使用,构建大型的Hybrid App
    • Cordova Plugins
      插件是Cordova生态系统的重要组成部分。插件是Cordova和原生组件相互通信的接口,并绑定到了标准的设备API上。这使你能够通过JavaScript调用原生代码。
      Apache Cordova项目组维护着一组插件叫做核心插件。这些核心插件可以让你的应用程序访问各个设备提供的具体功能,例如访问电源,相机,手机联系人等。

    注意:当你创建一个Cordova项目它不存在任何插件。任何你需要的组件,哪怕是核心组件,也需要开发者自己手动添加。Cordova不提供任何UI部件和MV*框架。Cordova只提供运行环境。


    安装与使用

    1. 安装NodeJS
      这个不多讲了,本人使用的是NodeJS V4.7.3
      安装了之后在命令行输入node -v以及npm -v可以查看node和npm的版本号
    2. 安装Cordova
      使用npm i -g cordova命令全局安装Cordova
    3. 创建Cordova项目
      执行命令cordova create hello com.example.hello HelloWorld
      将会在当前目录下创建一个hello目录作为这个Cordova工程的目录
      com.example.hello是项目的nameid,HelloWorld是项目的displayName
    4. 添加开发平台
    • 将当前工作目录移动到Cordova项目目录
      cd hello
    • 添加浏览器平台
      cordova platform add browser
    • 添加Android平台
      cordova platform add android
    • 添加IOS平台
      cordova platform add ios
    • 如果想指定版本可以
      cordova platform add android@6.1.0
    • 列出已添加的平台
      cordova platform ls

    Note: Cordova项目实际上还是使用NPM进行包管理。添加平台命令会将相应的cordova包添加到NPM依赖项中,并自动下载。例如添加了browserandroid平台后, config.xmlpackage.json都会记录相应的信息,如``package.json`自动添加了

    "dependencies": {
        "cordova-android": "^6.2.3",
        "cordova-browser": "^4.1.0"
    }
    

    同时node_modules中也已经安装了相应的依赖包

    1. 添加插件
      cordova plugin add cordova-plugin-statusbar --save
      罗列出已安装的插件
      cordova plugin ls
    2. 调试
      启用Android模拟器
      cordova emulate android
      也可以使用Android手机进入开发者模式进行调试
      cordova run android
    3. 打包Cordova应用
      cordova build android
      OK了,如果命令行无错误信息的话就会在/platforms/android/build/outputs/apk目录下会生成一个.apk文件。
      TIPS:
      如果有错误信息,以下是一些通用的解决方法(不一定管用)
    4. 其他的一些命令
      清理项目
      cordova clean
      移除平台
      cordova platform remove android

    Android平台依赖项安装

    1. 安装JDK
    2. 配置JAVA_HOMEPATH环境变量
    3. 安装Android SDK,直接安装Android Studio会打包安装Android SDK以及其他工具。
    4. 配置ANDROID_HOME环境变量
    5. 推荐将Android SDKtools, tools/bin, platform-tools也配置到PATH环境变量
    6. 配置AVD(Android Virtual Device)

    目录结构

    Cordova CLI(Command Line Interface)按以下的文档结构工作

    myapp/
    |-- config.xml
    |-- hooks/
    |-- merges/
    | | |-- android/
    | | |-- windows/
    | | |-- ios/
    |-- www/
    |-- platforms/
    | |-- android/
    | |-- windows/
    | |-- ios/
    |-- plugins/
      |--cordova-plugin-camera/
    
    • config.xml
      对应用进行配置,为项目做一些定制化的设置
    • www/
      应用的所有web资源存放与此(html,js,css等)。在cordova prepare时Cordova会把www/中的内容拷贝到各自平台的子目录中,例如platforms/ios/www或者platforms/android/assets/www。CLI每次都会将web资源从www/拷贝到各个平台的文件夹,因此不要在platforms中进行修改是无效的。
    • platforms/
      包括项目需要的相关平台的所有的源代码和构建脚本
    • plugins/
      项目添加的所有插件会放到此目录
    • hooks/
      存放对cordova-cli命令进行定制的脚本。这些脚本可以通过钩子控制何时执行。可用来建立自己的构建系统或与版本空着系统融合。
    • merges/
      用来存放特定平台的web资源。在merges/目录中对应的文件将会在prepare时覆盖www/目录中的文件。
    merges/
    |-- ios/
    | -- app.js
    |-- android/
    | -- android.js
    www/
    -- app.js
    

    例如merges/ios/app.js在构建IOS平台代码时,会覆盖www/app.js


    遇到的问题

    1. 打包Android的时候提示找不到gradle
      解决方法: 在path环境变量添加gradle工具的目录,Android Studio已经集成了gradle,在path环境变量中添加C:\Android\Android Studio\gradle\gradle-*.*.*\bin
    2. 打包Android,遇到gradle下载失败的解决办法
    • 使用翻墙软件
    • 手动下载,直接打开链接下载,解压缩到C:\Users\renwc\.gradle\wrapper\dists

    相关文章

      网友评论

          本文标题:cordova学习 - (1) 安装并发布第一个APP

          本文链接:https://www.haomeiwen.com/subject/aaayqxtx.html