cordova plugin android Plugin.xml 使用介紹

Plugin.xml

plugin.xml文件定義了你的插件所需的結構和設置。它有幾個元素來提供有關你的插件的詳細信息。

plugin

這個plugin元素是插件清單的頂級元素。

屬性(類型)描述

xmlns(string)Required該插件的命名空間,http://apache.org/cordova/ns/plugins/1.0。如果該文件包含來自其他名稱空間,如要加入到Android中的情況下,AndroidManifest.xml文件標記的XML,這些命名空間也應包括在該元素。

id(string)RequiredA npm-style 標識符插件。

version(string)Required該插件的版本號. Semver syntax is supported.

例子:

xmlns:android="http://schemas.android.com/apk/res/android"

id="my-plugin-id"

version="1.0.2">

engines and engine

在元素的子元素指定此插件支持基于科爾多瓦的Apache框架版本。該CLI中止與任何插件,其目標項目不符合engines的約束非零代碼。如果沒有指定標簽,則CLI嘗試安裝到指定的cordova項目目錄。

屬性(類型)描述

name(string)Required引擎的名稱。以下是所支持的默認引擎:cordova,cordova-plugman,cordova-android,cordova-ios,cordova,blackberry10,cordova-wp8,cordova-windows,cordova-osx,windows-os,android-sdk (returns the highest Android api level installed),windows-sdk (returns the native windows SDK version),apple-xcode (returns the xcode version),apple-ios (returns the highest iOS version installed),apple-osx (returns the OSX version),blackberry-ndk (returns the native blackberry SDK version)您也可以除了默認的指定自定義框架。

version(string)Required你的框架必須擁有安裝的版本。 Semver語法支持

scriptSrc(string)僅適用于自定義的框架Required該腳本文件,告訴plugman自定義架構的版本。理想情況下,這個文件應該是你的插件目錄的頂級目錄中。

platform(string)僅適用于自定義的框架需要該平臺的框架支持。您可以使用通配符*說支持所有的平臺,像'android的一個管道字符指定多個

Examples:

engines元件也可以使用'>','>='等,以避免重復指定模糊匹配,并且當底層的平臺被更新,以減少維護。

=1.8.0">

在標簽也對所有的cordova存在的主要平臺默認的支持。指定科爾多瓦引擎標簽意味著,在任何平臺上cordova的所有版本都必須滿足的引擎版本屬性。你也可以列出特定平臺及其版本,以覆蓋包羅萬象的cordova引擎:

=1.7.0">

=1.8.0">

=1.7.1">

自定義框架例如:

0.2.0" platform="ios|android" scriptsrc="path_to_another_framework_version">

=2.2.0" platform="*" scriptsrc="path_to_even_more_framework_version">

name

name元素用于指定插件的名稱。

Example:

Foo

description

描述元素用于指定插件的描述。此元素不處理本地化。

Example:

Foo plugin description

author

author元素包含了插件作者的姓名。

Example:

Foo plugin author

keywords

keywords元素的內容包含逗號分隔的關鍵字來描述該插件。

foo,bar

license

此元素用于指定插件的許可證。PS:這里我也沒有明白

Example:

Apache 2.0 License

asset

這個元素用來列出文件或目錄被復制到cordova的應用程序的www目錄。嵌套內的任何元素元素指定特定于平臺的網絡資源。

屬性(類型)描述

src(string)Required凡文件或目錄位于插件包,相對于plugin.xml的文件。如果文件沒有在指定位置的src存在,CLI停止并反轉安裝過程,發出關于沖突的通知,并與非零代碼退出。

target(string)Required在該文件或目錄應位于cordova應用程序,相對于www目錄。如果文件已經在目標位置存在,CLI的停止并反轉安裝過程中,發出關于沖突通知,并用一非零代碼退出。

Examples:



asset可以設置為有針對性地子目錄為好。這將創建www目錄內的js/experimental,除非已經存在,并復制新foo.js文件,重命名為foo.js.

js-module

大部分插件包括一個或多個JavaScript文件。每個JS-module標簽對應一個JavaScript文件,并防止插件的用戶不必添加script標記為每個文件。不要用保鮮cordova.define的文件,因為它會自動添加。該模塊被包裹在一個閉包,用模塊,出口和范圍要求,因為是正常的AMD模塊。嵌套JS-module在platform聲明特定平臺的JavaScript綁定的模塊元素。

屬性(類型)描述

src(string)參考相對plugin.xml文件插件目錄中的文件。如果SRC不能解決現有文件中,CLI停止并反轉安裝,發出問題的通知,并與非零代碼退出。

name(string)提供模塊名稱的最后一部分。它一般可以是你喜歡的,如果你想使用cordova.require導入你的插件的其他部分在JavaScript代碼只在乎。對于JS-module模塊名稱是你的插件的ID后跟名稱的值。

Example:

當安裝與下面的例子中的一個插件,socket.js被復制到www/plugins/my-plugin-id/socket.js,并添加為一個條目到www/cordova_plugins.js。在加載時,在cordova.js代碼使用XHR來讀取每個文件并注入 script 標記為HTML。

也正因為這個例子中,chrome-socket的插件ID,模塊名稱將是chrome-socket.Socket.

clobbers

JS-module元素內標記。用于指定module.exports被插入在window對象的命名空間。你可以有很多的clobbers只要你喜歡。創建window上的任何對象不可用。

屬性(類型)描述

target(string)其中,module.exports被插入的命名空間。

Example:

這里module.exports被插入到window對象window.chrome.socket。

merges

JS-module元素內標記。用來指定在哪里module.exports獲取與任何現有的價值合并window對象的命名空間。如果已經存在,模塊的版本取代原來的。你可以有很多的merges只要你喜歡。創建window上的任何對象不可用。

屬性(類型)描述

target(string)這module.exports命名空間被合并。

Example:

這里module.exports得到與window.chrome.socket的任何現有值合并。

runs

runs 是JS-module元素內標記。這意味著你的代碼應與cordova.require指定,但窗口對象上沒有安裝。初始化模塊時,附加的事件處理程序或其他方式,這非常有用。您最多只能有一個runs標記。請注意,包括runs與或是多余的,因為它們也cordova.require您的模塊。

Example:

dependency

在dependency標簽允許你指定在其當前插件依賴其他插件。該插件被其獨特的NPM的ID或URL GitHub的引用。

屬性(類型)描述

Attributes(type)? ? Descriptionid(string)提供插件的ID。

url(string)一種插件URL。這應該引用一個Git倉庫,其中CLI嘗試克隆。

commit(string)這是git的結帳理解的任何git的參考:一個分支或標記的名稱,(e.g., master, 0.3.1), or a commit hash (e.g., 975ddb228af811dd8bb37ed1dfd092a3d05295f9)

subdir(string)指定目標插件存在依賴的Git倉庫的子目錄。這是有幫助的,因為它允許包含幾個相關的插件庫,每個單獨指定。-----如果設置了dependency>標簽的網址“”。并提供一個子目錄,依賴插件是從同一個本地或遠程的Git倉庫為指定的dependency標記父插件安裝。-------請注意,子目錄始終指定相對于git倉庫,不是父插件的根目錄的路徑。這是真實的,即使你安裝了一個直接本地路徑后援CLI插件找到Git倉庫的根目錄,然后從那里找到的其他插件。

version(string)該插件的版本依賴。 Semver句法支持。

Examples:

platform

標識具有相關聯的本機代碼或需要修改其配置文件的平臺。工具使用這個規范可以識別支持的平臺和代碼安裝到cordova項目。無platform標記插件被假定為JavaScript的唯一的,因此在任何和所有平臺安裝。

屬性(類型)描述

name(string)允許值:ios, android, blackberry10, amazon-fireos, wp8, windows標識為支撐,其子元素與平臺相關聯的平臺。

Example:


source-file

標識應安裝到一個項目中的可執行文件的源代碼。

屬性(類型)描述

src(string)需要相對于plugin.xml到文件的位置。如果無法找到在src文件,則CLI停止并反轉安裝,發出關于該問題的通知,并用一個非零代碼退出。

target-dir(string)目錄到其中的文件應該被復制,相對于cordova項目的根。在實踐中,這是基于Java的平臺,其中,在所述com.alunny.foo包的文件必須位于Ccom/alunny/foo目錄最重要的。對于平臺所在的源目錄并不重要,這個屬性應該被忽略。

framework(boolean)默認值:false? iOS版 如果設置為true,還增加了指定的文件作為該項目的框架。

compiler-flags(string)iOS 如果設置,將指定的編譯器選項為特定的源文件

Examples:



header-file

這就像source-file元素,但專門為平臺,例如iOS和Android的源文件,頭文件和資源加以區分。這不是由Windows支持。

屬性(類型)描述

src(string)需要 相對于plugin.xml到文件的位置。。如果無法找到在src文件,則CLI停止并反轉安裝,發出關于該問題的通知,并用一個非零代碼退出。

target(string)路徑在該文件將在你的目錄進行復制。

Example:

For iOS:

resource-file

這就像source-file元素,但專門為平臺,例如iOS和Android的源文件,頭文件和資源加以區分。

屬性(類型)描述

src(string)需要 相對于plugin.xml到文件的位置。。如果無法找到在src文件,則CLI停止并反轉安裝,發出關于該問題的通知,并用一個非零代碼退出。

target(string)路徑在該文件將在你的目錄進行復制。

Examples:

For Android:

config-file

標識一個基于XML的配置文件進行修改,其中在該文件中所述修改應該發生,什么應該進行修改。已經過測試,修改與此元素的兩個文件類型是XML和的plist文件。在配置文件中的元素只允許新的兒童追加到XML文檔樹。孩子們在目標文檔中插入XML文本。

屬性(類型)描述

target(string)該文件被修改,并且相對于cordova項目的根的路徑。如果指定的文件不存在,該工具會忽略配置變化,并繼續安裝。目標可以包括通配符(*)的元素。在這種情況下,CLI遞歸項目的目錄結構進行搜索,并使用第一個匹配。在iOS上,配置的位置,相對于項目根目錄是不知道,因此指定config.xml中的目標文件解析到cordova-ios-project/MyAppName/config.xml中。

parent(string)一個XPath選擇引用的元素的父要添加到配置文件。如果您使用的絕對選擇,你可以使用通配符()指定的根元素,例如//插件。如果選擇器不能解決到指定文檔的孩子,工具停止并反轉安裝過程中,會發出警告,并用非零代碼退出。對于文件的plist,父在什么父鍵指定的XML應插入決定。

after(string)接受兄弟姐妹的優先列表之后,添加XML片段。可用于指定在需要這樣的XML元素的嚴格的順序文件中的更改。

Examples:

For XML:

For plist:

PackageName

$PACKAGE_NAME

plugins-plist

指定鍵和值將追加到在在iOScordova項目的正確AppInfo.plist文件。這是過時,因為它僅適用于科爾多瓦-IOS2.2.0及以下。使用config-file標記科爾多瓦的較新版本。

Example:

lib-file

鏈接源,資源和頭文件。

屬性(類型)描述

src(string)需要 相對于文件的位置到plugin.xml。如果無法找到的src,CLI的停止并反轉安裝,發出關于該問題的警告,并用一非零代碼退出。

arch(string)對于其中的.so文件已建成的建筑,無論是設備或模擬器。對于Windows,則表示該構建為指定的結構時只應被包括在內。支持的值是86,64或ARM。

Examples:

framework

標識的框架(通常是系統/平臺的一部分)該插件依賴。

屬性(類型)描述

src(string)需要 系統框架或者被包括作為你的插件文件的一部分給一個相對路徑名。

custom(boolean)表示框架是否是作為你的插件文件的一部分。

weak(boolean)默認值:false? 指示是否該框架應弱鏈接。

type(string)表示框架添加的類型。

parent(string)默認值:設置到包含子項目在其中添加參考的目錄的相對路徑。默認。意味著應用程序項目。

Examples:

For iOS:

在Android(如cordova-android@4.0.0的),使用框架的標簽,包括Maven依賴,或者包括捆綁的庫項目。




info

向用戶提供更多的信息。當你需要不容易自動或超出了CLI的范圍,額外的步驟,這是非常有用的。此標記的內容被打印出來的時候,CLI安裝插件。

Example:

You need to install __Google Play Services__ from the `Android? ? Extras` section using the Android SDK manager (run `android`).

You need to add the following line to the `local.properties`:

android.library.reference.1=PATH_TO_ANDROID_SDK/sdk/extras/google/google_play_services/libproject/google-play-services_lib

hook

表示將由cordova當某些行為發生時被調用自定義腳本(例如,插件添加或平臺準備邏輯后調用)。當你需要擴展默認cordvoa的功能,這非常有用。

Example:

uses-permission

在某些情況下,插件可能需要使依賴于目標應用程序配置的改變。例如,要在Android,應用程序的包ID是我-APP-ID將需要的權限,如注冊C2DM:

在從plugin.xml文件中插入的內容是不是提前知道這樣的情況下,變量可以通過一個美元符號后面是一系列大寫字母,數字或下劃線的表示。對于上面的例子中,plugin.xml文件將包括此標記:

如果沒有找到該CLI替換指定的值,或空字符串變量的引用。可變基準的值可以被檢測(在此情況下,從AndroidManifest.xml文件),或者由工具的用戶指定;確切的過程是依賴于特定的工具。

Plugman可以要求用戶指定插件的必需的變量。例如,對于C2M和谷歌地圖API密鑰可以被指定為一個命令行參數:

plugman --platform android --project /path/to/project --plugin name|git-url|path --variable API_KEY=!@CFATGWE%^WGSFDGSDFW$%^#$%YTHGsdfhsfhyer56734

preference

正如上一節中看到的,有時插件可能需要用戶為他們的變量賦值。為了使這些變量強制性的,在<平臺>標簽必須包含一個<優先>標記。在CLI檢查,這些要求的偏好中通過。如果不是,則應當警告用戶如何在可變和出口通過帶有非零碼。

屬性(類型)描述

name(string)需要 變量的名稱..

default(string)變量的默認值。如果存在的話,它的值將被使用,并沒有錯誤將萬一用戶發出不輸入任何值。



鏈接:http://www.lxweimin.com/p/92dd69ae7d8f



最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容