我爱编程

iOS Cordova插件开发(一)之plugin.xml文件编

2017-09-15  本文已影响988人  _Boring

iOS Cordova插件开发之plugin.xml文件编写

plugin.xml文件的编写对于新手来说,是我觉得最难搞的。

阅读目录

一、plugin.xml文件的作用
二、必要元素的解释
三、依赖文件的引入格式

一、plugin.xml文件的作用

Cordova插件中觉文件定义了你的插件所需的结构和设置。

二、必要元素的解释

栗子:(下面我会一一解释它们的作用)

<?xml version="1.0" encoding="UTF-8" ?>
<plugin xmlns="http://phonegap.com/ns/plugins/1.0"
    id="com.will.cordovaPlugin"
    version="1.0.0">
    <engines>
       <engine name="cordova" version=">=3.3.0" />
    </engines>

    <name>XFPlugin</name>
    <description>测试插件</description>
    <author>Will</author>
    <keywords>voice,video,record</keywords>
    
    <js-module src="www/willPlugin.js" name="WillModel">
        <clobbers target="testModel" />
    </js-module>

    <platform name="ios">
      <config-file target="config.xml" parent="/*">
        <feature name="XFPlugin">
            <param name="ios-package" value="XFPlugin" />
        </feature>
      </config-file>
    </platform>
</plugin>
plugin

这个plugin元素是插件清单的顶级元素。

engines

在<engines>元素的子元素指定此插件支持基于Cordova的Apache框架版本。该CLI中止与任何插件,其目标项目不符合engines的约束非零代码。如果没有指定标签,则CLI尝试安装到指定的cordova项目目录。

name

name元素用于指定插件的名称

description

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

author

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

keywords

元素的内容包含逗号分隔的关键字来描述该插件。

js-module

正常来说插件都会包括一个或多个js/ts文件。每个js-module标签对应一个js/ts文件,会自动生成到你指定的目录下。吸入js-module在platform声明特定平台的js/ts文件绑定的模块元素,同时前端可直接通过js/ts输出的接口或对象直接调用插件功能。

js-platform

标识具有相关联的本机代码或需要修改其配置文件的平台。工具使用这个规范可以识别支持的平台和代码安装到cordova项目。无platform标记插件被假定为JavaScript的唯一的,因此在任何和所有平台安装。

三、依赖文件的引入格式

这里是重头戏。我一度在这里差点就放弃了,实在是在网上找的教程都失败了,而且众说纷纭,几乎每个人写的都不一样,最后没办法,一个个给试了出来。

太晚了,先写直接贴代码,下次有时间详细说。下面是我写的一个测试插件,因为倒入了两个第三方库,所以看起来很多。

<header-file src="src/ios/Definition.h" />
    <header-file src="src/ios/IATConfig.h" />
    <source-file src="src/ios/IATConfig.m" />

    <header-file src="src/ios/ISRDataHelper.h" />
    <source-file src="src/ios/ISRDataHelper.m" />

    <header-file src="src/ios/PlayerViewController.h" />
    <source-file src="src/ios/PlayerViewController.m" />

    <header-file src="src/ios/TTSConfig.h" />
    <source-file src="src/ios/TTSConfig.m" />

    <header-file src="src/ios/XFPlugin.h" />
    <source-file src="src/ios/XFPlugin.m" />

    <header-file src="src/ios/XFTool.h" />
    <source-file src="src/ios/XFTool.m" />

    <!--讯飞依赖-->
    <framework src="src/ios/iflyMSC.framework" custom="true" />

    <!--优酷云依赖-->
    <resource-file src="src/ios/YouTuEngineMediaPlayer/cloud.bundle" />
    <resource-file src="src/ios/YouTuEngineMediaPlayer/libYouTuMediaPlayerEngineYouku.a"/>
    <resource-file src="src/ios/YouTuEngineMediaPlayer/yw_1222_0335_mwua.jpg" />

    <framework src="src/ios/library/BCUserTrack/UTMini.framework" custom="true" />
    <framework src="src/ios/library/SecurityGuardSDK/SecurityGuardSDK.framework" custom="true" />
    <framework src="src/ios/library/SGAVMP/SGAVMP.framework" custom="true" />
    <framework src="src/ios/library/SGMain/SGMain.framework" custom="true" />
    <framework src="src/ios/library/SGSecurityBody/SGSecurityBody.framework" custom="true" />
    <source-file src="src/ios/library/UTDID/UTDID.framework" framework="true" />
    <resource-file src="src/ios/library/Reachability/LICENCE.txt" />
    <resource-file src="src/ios/library/Reachability/README.md" />
    <header-file src="src/ios/library/Reachability/Reachability.h" />
    <source-file src="src/ios/library/Reachability/Reachability.m" />

    <header-file src="src/ios/YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/YoukuMediaPlayer.h" />
    <header-file src="src/ios/YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/YTDownloadDefine.h" />
    <header-file src="src/ios/YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/YTDownloadManager.h" />
    <header-file src="src/ios/YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/YTDownloadTaskModel.h" />
    <header-file src="src/ios/YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/YTEngineOpenViewManager.h" />
    <header-file src="src/ios/YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/YTLocalMedia.h" />
    <header-file src="src/ios/YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/YTSequence.h" />
    <header-file src="src/ios/YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/YYMediaPlayer.h" />
    <header-file src="src/ios/YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/YYMediaPlayerBackgroundModeManager.h" />
    <header-file src="src/ios/YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/YYMediaPlayerDefines.h" />
    <header-file src="src/ios/YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/YYMediaPlayerEvents.h" />
    <header-file src="src/ios/YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/YYMediaPlayerException.h" />
    <header-file src="src/ios/YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/YYMediaPlayerHistory.h" />
    <header-file src="src/ios/YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/YYMediaPlayerItem.h" />

    <!--系统依赖-->
    <framework src="libz.tbd" />
    <framework src="libresolv.9.tbd" />
    <framework src="libiconv.2.tbd" />
    <framework src="libxml2.2.tbd" />
    <framework src="libbz2.1.0.tbd" />
    <framework src="libc++.1..tbd" />
    <framework src="libsqlite3.tbd" />
    <framework src="libicucore.tbd" />
    <framework src="libc++.tbd" />
    <framework src="libz.tbd" />
    <framework src="VideoToolbox.framework" />
    <framework src="CoreMedia.framework" />
    <framework src="OpenGLES.framework" />
    <framework src="CoreText.framework" />
    <framework src="AdSupport.framework" />
    <framework src="MediaPlayer.framework" />
    <framework src="EventKit.framework" />
    <framework src="MessageUI.framework" />
    <framework src="Social.framework" />
    <framework src="MobileCoreServices.framework" />
    <framework src="CoreMotion.framework" />
    <framework src="ModellO.framework" />
    <framework src="CoreGraphics.framework" />
    <framework src="QuartzCore.framework" />
    <framework src="AddressBook.framework" />
    <framework src="Contacts.framework" />
    <framework src="CoreLocation.framework" />
    <framework src="UIKit.framework" />
    <framework src="AudioToolbox.framework" />
    <framework src="CoreTelephony.framework" />
    <framework src="Foundation.framework" />
    <framework src="SystemConfiguration.framework" />
    <framework src="AVFoundation.framework" />

今天先写到这里了。

上一篇 下一篇

猜你喜欢

热点阅读