因为本人是安卓开发出身,并无开发过ios,因此这篇文章只是帮朋友写的,你们若是感受有问题的话那就只当作一个参考就行了。php
在正式描述以前有几点是要提早说明的:
①.首先本篇文章适合有必定ios基础的朋友们;
②.本篇文章不会讲如何将第三方sdk导入到ios项目中并开发和第三方项目相关的功能;
③.本篇文章主要讲的是plugin.xml的配置,即一些特殊文件的导入方法在xml中是怎么设置的;
④.ios的开发环境安装以及Cordova工程的建立等请自行百度,也能够参考前面的几篇文章,之因此把我本身写的几篇文章添加进来是由于在ios方面的插件开发与安卓的部分逻辑是类似的,能够在百度的同时若是不明白的在参考一下个人文章;
Cordova 开发之环境搭建
Cordova 开发之安卓插件开发(一)
Cordova 开发之安卓插件开发(二)
Cordova开发自定义插件(详细篇含jar包调用)
cordova Plugin.xml 详解ios
首先先上代码:c++
<?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>
<js-module src="www/testPlugin.js" name="willModel">
<clobbers target="testModel" />
</js-module>
<platform name="ios">
<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" />
<!--优酷云依赖-->
<framework src="src/ios/library/BCUserTrack/UTMini.framework" parent="YouTuEngineMediaPlayer/library/BCUserTrack/" custom = "true"/>
<framework src="src/ios/library/SecurityGuardSDK/SecurityGuardSDK.framework" parent="YouTuEngineMediaPlayer/library/SecurityGuardSDK/" custom = "true"/>
<framework src="src/ios/library/SGAVMP/SGAVMP.framework" parent="YouTuEngineMediaPlayer/library/SGAVMP/" custom = "true"/>
<framework src="src/ios/library/SGMain/SGMain.framework" parent="YouTuEngineMediaPlayer/library/SGMain/" custom = "true"/>
<framework src="src/ios/library/SGSecurityBody/SGSecurityBody.framework" parent="YouTuEngineMediaPlayer/library/SGSecurityBody/" custom = "true" />
<framework src="src/ios/library/UTDID/UTDID.framework" parent="YouTuEngineMediaPlayer/library/UTDID/" custom = "true" />
<source-file src="src/ios/YouTuEngineMediaPlayer/cloud.bundle" target-dir="YouTuEngineMediaPlayer/"/>
<source-file src="src/ios/YouTuEngineMediaPlayer/libYouTuMediaPlayerEngineYouku.a" target-dir="YouTuEngineMediaPlayer/" framework = "true"/>
<source-file src="src/ios/YouTuEngineMediaPlayer/yw_1222_0335_mwua.jpg" target-dir="YouTuEngineMediaPlayer/"/>
<source-file src="src/ios/library/Reachability/LICENCE.txt" target-dir="YouTuEngineMediaPlayer/library/Reachability/"/>
<source-file src="src/ios/library/Reachability/README.md" target-dir="YouTuEngineMediaPlayer/library/Reachability/"/>
<source-file src="src/ios/library/Reachability/Reachability.h" target-dir="YouTuEngineMediaPlayer/library/Reachability/" />
<source-file src="src/ios/library/Reachability/Reachability.m" target-dir="YouTuEngineMediaPlayer/library/Reachability/" />
<source-file src="src/ios/YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/YoukuMediaPlayer.h" target-dir="YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/"/>
<source-file src="src/ios/YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/YTDownloadDefine.h" target-dir="YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/"/>
<source-file src="src/ios/YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/YTDownloadManager.h" target-dir="YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/"/>
<source-file src="src/ios/YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/YTDownloadTaskModel.h" target-dir="YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/"/>
<source-file src="src/ios/YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/YTEngineOpenViewManager.h" target-dir="YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/"/>
<source-file src="src/ios/YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/YTLocalMedia.h" target-dir="YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/"/>
<source-file src="src/ios/YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/YTSequence.h" target-dir="YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/"/>
<source-file src="src/ios/YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/YYMediaPlayer.h" target-dir="YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/"/>
<source-file src="src/ios/YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/YYMediaPlayerBackgroundModeManager.h" target-dir="YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/"/>
<source-file src="src/ios/YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/YYMediaPlayerDefines.h" target-dir="YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/"/>
<source-file src="src/ios/YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/YYMediaPlayerEvents.h" target-dir="YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/"/>
<source-file src="src/ios/YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/YYMediaPlayerException.h" target-dir="YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/"/>
<source-file src="src/ios/YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/YYMediaPlayerHistory.h" target-dir="YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/"/>
<source-file src="src/ios/YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/YYMediaPlayerItem.h" target-dir="YouTuEngineMediaPlayer/YouTuMediaPlayerEngineYoukuHeaders/"/>
<!--系统依赖-->
<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="ModeliO.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" />
<config-file target="config.xml" parent="/*">
<feature name="XFPlugin">
<param name="ios-package" value="XFPlugin" />
</feature>
</config-file>
</platform>
</plugin>
<header-file src="src/ios/Definition.h" />
<source-file src="src/ios/IATConfig.m" />
<framework src="src/ios/library/BCUserTrack/UTMini.framework" parent="YouTuEngineMediaPlayer/library/BCUserTrack/" custom = "true"/>
<source-file src="src/ios/YouTuEngineMediaPlayer/libYouTuMediaPlayerEngineYouku.a" target-dir="YouTuEngineMediaPlayer/" framework = "true"/>
第三方剩余文件的导入
第三方库剩余的一些文件的导入其实没什么好说的了,直接使用普通的source-file标签正常导入便可;web
系统依赖库的导入
其实这也没什么好说的,直接使用framework标签正常导入就好;sql
<!--系统依赖-->
<framework src="libz.tbd" />
<framework src="VideoToolbox.framework" />
<config-file target="config.xml" parent="/*">
<feature name="XFPlugin">
<param name="ios-package" value="XFPlugin" />
</feature>
</config-file>