cordova flie文件目录_Cordova那些事儿(一)——Cordova 相关目录结构
Cordova LOGO一、使用 Cordova-CLI 建立的工程目录结构使用 cordova create 命令建立的工程,结构如下:./|-hooks/ ............ 一些build时的特殊脚本|-platforms/ ........ 原生平台代码|-plugins/ .......... 插件|-www/ .............. Web内容|'-index.html..
Cordova LOGO
一、使用 Cordova-CLI 建立的工程目录结构
使用 cordova create 命令建立的工程,结构如下:
./
|-hooks/ ............ 一些build时的特殊脚本
|-platforms/ ........ 原生平台代码
|-plugins/ .......... 插件
|-www/ .............. Web内容
| '-index.html
'-config.xml ........ 工程配置文件,包括工程id、名字、描述、一些白名单等等
二、使用 Cordova-CLI,创建的 iOS 工程
./HelloCordova/
|-CordovaLib/ .................................. Cordova 库
|-HelloCordova/ ................................ Cordova iOS 工程
| |-Classes/
| |-Plugins/ .................................. 插件原生代码
| | |-cordova-plugin-console/ ................ 示例
| | | |-CDVLogger.h
| | | '-CDVLogger.m
| | |-cordova-plugin-inappbrowser/ ........... 示例
| | | |-CDVInAppBrowser.h
| | | '-CDVInAppBrowser.m
| | '-README
| |-config.xml ................................ iOS工程的配置,包括引用的插件、引用方式等,可由 Cordova-CLI 生成
| '-main.m
|-HelloCordova.xcodeproj/ ...................... 工程文件
|-HelloCordova.xcworkspace/ .................... Workspace 文件
|-cordova/ ..................................... 用于执行 build 的相关脚本内容,与代码无关
|-platform_www/ ................................ 平台相关的 Web 内容
| |-cordova-js-src/
| | |-exec.js
| | '-platform.js
| |-plugins/ .................................. 插件相关的 js 代码
| | |-cordova-plugin-console/ ................ 示例
| | | '-www/
| | | |-console-via-logger.js
| | | '-logger.js
| | '-cordova-plugin-inappbrowser/ ........... 示例
| | '-www/
| | '-inappbrowser.js
| |-cordova.js
| '-cordova_plugins.js ........................ 用于导入所引用插件相关的配置的 js,由引用的插件内容而定
|-www/ ......................................... 自定义的 Web 内容 + platform_www/ 中的内容
| |-cordova-js-src/
| | |-exec.js
| | '-platform.js
| |-plugins/
| | |-cordova-plugin-console/
| | | '-www/
| | | |-console-via-logger.js
| | | '-logger.js
| | '-cordova-plugin-inappbrowser/
| | '-www/
| | '-inappbrowser.js
| |-cordova.js
| |-cordova_plugins.js
| '-index.html
'-ios.json .................................... 所引用插件相关的配置,标准 JSON,其中 modules 部分与 cordova_plugins.js 的 module.exports 部分内容相同,可以直接通过iOS解析,获取所引用的插件信息。此文件不会被打包。
特定平台工程和 Cordova 工程都包含了 config.xml 文件,目前的理解:
Cordova 工程中的 config.xml,是一些跨平台的通用配置。
特定平台工程中的 config.xml,除了包含通用配置,还有一些平台的特性化配置,比如:引用插件、插件的加载执行方式等等。
三、使用 Cordova-CLI 打包后的结构
使用 cordova build 命令打包后的目录结构(以 iOS 为例,除原生代码外,都在 www 文件夹中,手集成 CordovaLib 的话,文件夹可以自己定义):
./www/
|-cordova-js-src/ ................. 存放用于与原生功能桥接的JS(无需改动)
| |-exec.js ...................... 无需改动
| '-platform.js .................. 无需改动
|-plugins/ ........................ 插件 js 部分的代码
| |-cordova-plugin-console/
| | '-www/
| | |-console-via-logger.js
| | '-logger.js
| '-cordova-plugin-inappbrowser/
| '-www/
| '-inappbrowser.js
|-cordova.js ...................... 用于加载插件,一般在 index.html 中引用(无需改动)
|-cordova_plugins.js .............. 所有引用的插件(需要根据引用的插件来进行调整)
'-index.html
这些在 www 中的内容,除了index.html,其余的并没有出现在 Cordova 工程中。
从一、二两个结构的比较中可以看出:“二”中的以下文件并没有包含在“一”中:
cordova-js-src/ ................. 存放用于与原生功能桥接的JS(无需改动)
|-exec.js ...................... 无需改动
'-platform.js .................. 无需改动
cordova.js ...................... 用于加载插件,一般在 index.html 中引用(无需改动)
cordova_plugins.js .............. 所有引用的插件(需要根据引用的插件来进行调整)
这些内容属于:
应用在 JS 执行原生调用时需要
但又不需要手工编辑
所以在 Cordova 工程中没有出现,而是在 Cordova-CLI 进行打包的过程中塞了进去。
四、在自己工程中引入 CordovaLib
对于在自己的工程中引入 Cordova 的情况,需要在工程中引入 config.xml。如果需要进行原生插件调用,把“二”中的内容加进去,并保证这些页面能正常加载到这些 JS。
五、plugin 目录结构
通过 Cordova-CLI 安装的插件,需要按照一定的格式组织代码。
./cordova-plugin-console/
|-doc/ ......................... 文档目录
|-src/ ......................... 源码目录(重要:需要编写代码)
| |-ios/ ...................... 平台分类 iOS
| | |-CDVLogger.h
| | '-CDVLogger.m
| |-ubuntu/ ................... 平台分类 Ubuntu
| | |-console.cpp
| | '-console.h
| '-wp/ ....................... 平台分类 Windows Phone
| '-DebugConsole.cs
|-tests/ ....................... 测试文件夹
| |-plugin.xml
| '-tests.js
|-www/ ......................... 用于与原生代码交互的 js(重要:需要编写代码)
| |-console-via-logger.js
| '-logger.js
|-package.json ................. 插件的说明信息,用于搜索等作用,貌似对程序没有实际作用
'-plugin.xml ................... 插件的配置文件,其中包含每个平台的配置,使用命令行安装插件时,会把文件中各个平台的内容,插入到各个平台代码的 config.xml 中(重要:需要开发插件时编写)
六、plugin.xml 文件结构
plugin.xml 是编写的插件的描述文件,其中主要是若干个 标签中的内容。根据不同的平台,提供不同的设置。在执行 cordova plugin add 命令时,会把不同平台的配置,分别插入到“各个平台工程代码”中的 config.xml 中。
例如:
标签中
标签用于指定将里面 标签中的内容插入到 config.xml 中。
标签用于生成 cordova_plugins.js 的内容
、、分别表示头文件、实现文件和需要引用的 framework。
标签中的内容并不是所有平台都一样,而是根据平台特性,自行定义。
以下为 InAppBrowser 插件的 Android 和 iOS 部分配置
id="cordova-plugin-inappbrowser"
version="1.6.1">
InAppBrowser
Cordova InAppBrowser Plugin
Apache 2.0
cordova,in,app,browser,inappbrowser
https://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser.git
https://issues.apache.org/jira/browse/CB/component/12320641
更多推荐


所有评论(0)