plugin.xml配置文件的介绍
一、概述
plugin.xml文件定义插件所需的结构和设置
二、标签元素介绍
plugin标签
plugin元素是插件清单的顶级元素。
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android" id="cordova-plugin-camera" version="4.1.0"> ...
</plugin>
- 1
- 2
- 3
- 4
- 5
- 6
属性 | 描述 |
---|---|
xmlns(string) | 插件名称空间,http://apache.org/cordova/ns/plugins/1.0。如果文档包含来自其他名称空间的xml,例如在android中要添加到androidmanifest.xml文件的标记,那么这些名称空间也应该包含在元素中。 |
id(string) | 插件的npm样式标识符。 |
version(string) | 插件的版本号。支持semver语法。 |
name标签
用于指定插件的名称。
<plugin ...> <name>Camera</name>
</plugin>
- 1
- 2
- 3
description标签
用于指定插件的描述。
<plugin ...> <description>Cordova Camera Plugin</description>
</plugin>
- 1
- 2
- 3
license标签
用于指定插件的许可证。
<plugin ...> <license>Apache 2.0</license>
</plugin>
- 1
- 2
- 3
keywords标签
keywords元素的内容包含逗号分隔的关键字来描述插件 。
<plugin ...> <keywords>cordova,camera</keywords>
</plugin>
- 1
- 2
- 3
repo标签
插件源
<plugin ...> <repo>https://github.com/apache/cordova-plugin-camera</repo>
</plugin>
- 1
- 2
- 3
engines标签与engine标签
元素的子元素指定此插件支持的基于apache cordova的框架的版本。对于其目标项目不满足引擎约束的任何插件,cli都将使用非零代码中止。如果未指定标记,则cli将尝试盲目地安装到指定的cordova项目目录中。
建议在插件的package.json文件中指定平台、插件和cli依赖项。
<plugin ...> <engines> <engine name="cordova" version=">=7.1.0"/> <engine name="cordova-android" version=">=6.3.0" /> </engines>
</plugin>
- 1
- 2
- 3
- 4
- 5
- 6
属性 | 描述 |
---|---|
version(string) | 版本号对应的框架存在,才能安装。这里是指定框架的版本号。支持semver语法 |
name(string) | 引擎的名称。| |
以下是支持的默认引擎:
- cordova
- cordova-plugman
- cordova-android
- cordova-browser
- android-sdk (返回安装的最高android api级别)
以上列举了一些Android平台上的可选的值。 除默认框架外,还可以指定自定义框架。
js-module标签与clobbers标签
大多数插件包含一个或多个javascript文件。每个标记对应一个javascript文件,并防止插件的用户为每个文件添加
<plugin ...> <js-module src="www/CameraConstants.js" name="Camera"> <clobbers target="Camera" /> </js-module>
</plugin>
- 1
- 2
- 3
- 4
- 5
js-module标签的属性
属性 | 描述 |
---|---|
src(string) | 引用plugin目录中相对于plugin.xml文件的文件。如果src无法解析为现有文件,则cli将停止并反向安装,发出问题通知,并以非零代码退出 |
name(string) | 提供模块名称的最后一部分。它可以是任意字符,当想在javascript代码中使用cordova.require在导入插件时,这个名称就会用到。的模块名是由插件的id,后跟name的值组成的。 |
clobbers标签的属性
属性 | 描述 |
---|---|
target(string) | 指定module.exports插入的命名空间。 |
platform标签
标识具有关联的本地代码或需要修改其配置文件的平台。使用此规范的工具可以识别受支持的平台并将代码安装到Cordova项目中。不带标记的插件被假定为仅限javascript,因此可以在所有平台上安装。
<plugin ...> <!-- android --> <platform name="android"> <config-file target="res/xml/config.xml" parent="/*"> <feature name="Camera"> <param name="android-package" value="org.apache.cordova.camera.CameraLauncher"/> </feature> </config-file> <config-file target="AndroidManifest.xml" parent="/*"> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> </config-file> <config-file target="AndroidManifest.xml" parent="application"> <provider android:name="org.apache.cordova.camera.FileProvider" android:authorities="${applicationId}.provider" android:exported="false" android:grantUriPermissions="true" > <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/camera_provider_paths"/> </provider> </config-file> <config-file target="AndroidManifest.xml" parent="/manifest/application"> <activity android:name="com.foo.Foo" android:label="@string/app_name"> <intent-filter> </intent-filter> </activity> </config-file> <source-file src="src/android/CameraLauncher.java" target-dir="src/org/apache/cordova/camera" /> <source-file src="src/android/CordovaUri.java" target-dir="src/org/apache/cordova/camera" /> <source-file src="src/android/FileHelper.java" target-dir="src/org/apache/cordova/camera" /> <source-file src="src/android/ExifHelper.java" target-dir="src/org/apache/cordova/camera" /> <source-file src="src/android/FileProvider.java" target-dir="src/org/apache/cordova/camera" /> <source-file src="src/android/xml/camera_provider_paths.xml" target-dir="res/xml" /> <js-module src="www/CameraPopoverHandle.js" name="CameraPopoverHandle"> <clobbers target="CameraPopoverHandle" /> </js-module> <preference name="ANDROID_SUPPORT_V4_VERSION" default="27.+"/> <framework src="com.android.support:support-v4:$ANDROID_SUPPORT_V4_VERSION"/> </platform>
</plugin>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
platform标签的属性
属性 | 描述 |
---|---|
name(string) | 允许值:ios、android、windows、browser、osx。将平台标识为受支持,并将元素的子级与该平台关联。 |
source-file子标签
标识应安装到项目中的可执行源代码。
source-file子标签的属性
属性 | 描述 |
---|---|
src(string) | 文件相对于plugin.xml的位置。如果找不到src文件,cli将停止并反向安装,发出有关该问题的通知,并以非零代码退出。 |
target-dir(string) | 相对于Cordova项目的根目录,应将文件复制到其中的目录。在实践中,这对于基于Java的平台来说是最重要的,其中org.apache.cordova.camera包中的文件必须位于org/apache/cordova/camera目录内。 |
config-file子标签的属性
标识要修改的xml配置文件及其位置和修改内容。
属性 | 描述 |
---|---|
target(string) | 要修改的文件,以及相对于Cordova项目根目录的路径。如果指定的文件不存在,工具将忽略配置更改并继续安装。目标可以包含通配符(*)元素。在本例中,cli递归地搜索项目目录结构并使用第一个匹配项。 |
parent(string) | 引用要添加到配置文件中的元素的父元素的xpath选择器。如果使用绝对选择器,则可以使用通配符()指定根元素,例如//plugins。如果选择器未解析为指定文档的子文档,则该工具将停止并反转安装过程,发出警告,并以非零代码退出。 |
preference子标签的属性
有时插件可能需要用户为其变量指定值。要使这些变量成为必需的,标记需要包含一个标记。cli检查是否传入了这些必需的首选项。如果不是,它应该警告用户如何传入变量并使用非零代码退出。在plugin.xml的其他地方,可以使用语法$PREFERENCE_NAME引用首选项。
属性 | 描述 |
---|---|
name(string) | 变量的名称。只能包含大写字母、数字和下划线。 |
default(string) | 变量的默认值。如果存在,则将使用其值,如果用户不输入任何值,则不会发出错误。 |
framework子村签及其属性
标识插件所依赖的框架(通常是操作系统/平台的一部分)。
属性 | 描述 |
---|---|
src(string) | 系统框架的名称或作为插件文件一部分包含的系统框架的相对路径。 |
custom(boolean) | 指示框架是否包含在插件文件中。 |
weak(boolean) | 指示框架是否应弱链接。 |
type(string) | 指示要添加的框架类型。 |
parent(string) | 设置包含要向其添加引用的子项目的目录的相对路径。默认值表示应用程序项目。 |
以上就是plugin.xml配置文件中常用到的标签,另外,如果要申请权限,最好把权限配置到cordova项目的根目录下的config.xml里。
谢谢阅读
文章来源: blog.csdn.net,作者:WongKyunban,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_40763897/article/details/100760852
- 点赞
- 收藏
- 关注作者
评论(0)