plugin.xml配置文件的介绍

举报
yd_221104950 发表于 2020/12/02 23:09:01 2020/12/02
【摘要】 一、概述 plugin.xml文件定义插件所需的结构和设置 二、标签元素介绍 plugin标签 plugin元素是插件清单的顶级元素。 <plugin xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/andr...

一、概述

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

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。