很多跨平台开发的项目,会希望通过cordova插件调用iOS的原生API,实现JS与OC 的通信,集成iOS的一些相关功能。网上查了一些资料,再加上自己的理解,将一些心得分享给大家。下面将以调用系统相册或摄像头实现截图功能为例,将cordova的创建过程分享给大家。
一、开发环境的准备(Mac环境)
1.安装nodejs和npm,可到到nodejs官网(https://nodejs.org)上下载安装包直接下载或者用Homebrew(http://brew.sh/)安装。
brew
install
nodejs npm
2、安装命令行工具
sudo
npm
install
-g cordova
sudo
npm
install
-g ios-sim
#用于从命令行启动iOS模拟器
sudo
npm
install
-g plugman
#插件管理工具
|
4、 安装XCode的Command Line Tools(仅针对Mac上开发iOS应用)
到XCode->Preferences中相应的设置页中安装
或者在终端用命令安装,可参考http://www.07net01.com/2015/07/879465.html
二、插件的开发,使用plugman来创建插件工程
1、创建插件的名字: plugman create -name CropperPlugin --plugin_id com.wxz.Cropper --plugin_version 0.1
name:插件名字
plugin_id:插件的id
plugin_version:插件的版本
这三个参数的内容自己根据喜好去设定
2、切换到创建好的插件目录下
cd
CropperPlugin/
3、添加iOS版本
plugman platform add --platform_name ios
这时在CropperPlugin下就会生成三个文件
没有.h文件,但是不影响使用,可以自己建个.h文件,但是要记得在plugin.xml文件中加上
<source-file src="src/ios/CropperPlugin.h" />
@interface MyPlugin : CDVPlugin {
// Member variables go here.
}
- (void)coolMethod:(CDVInvokedUrlCommand*)command;
@end
(如果需要引用第三方,可将第三方的包放到ios那个文件夹中,同时要记得写.xml文件,否则无法使用第三方);
三、cordova应用的创建
cordova create CropperPluginDemo "
com.wxz.CropperDemos"
"
CropperPluginDemos"
cd
PluginDemo/
cordova platform add ios
这时的效果如图:
这时候我们需要将刚才创建好的CropperPlugin插件添加到CropperPluginDemo的plugin文件夹中,这样工程中才会有我们创建的插件(将CropperPlugin文件放到和plugins文件同一个级别上,执行以下命令)
ionic plugin add CropperPlugin
ionic platform add ios
ionic build ios
然后工程就中就能使用我们写好的插件了。
然后就能正常去实现需要的功能了。
创建CropperViewController.m 和CropperViewController.m 用来进行截图的具体操作
CropperViewController.m 代码如下
CropperViewController.m 代码如下