专精技术iOS DeveloperiOS 开发

iOS平台创建Cordova项目及自定义插件plugin

2016-09-11  本文已影响270人  XDUZ

创建Cordova项目

一、环境配置(mac版):

1.安装node.js(https://nodejs.org/en/

2.使用node的依赖包管理工具npm来进行cordova安装。打开终端输入命令:

sudo npminstall-gcordova

二、创建cordova的项目

1.新建一个cordova的项目

打开终端输入命令:

cordovacreatehellocom.example.helloHelloWorld[--template

templatePath]

注:hello:为你的项目生成一个hello目录;com.example.com: App ID;helloWorld:应用程序的项目名。

2.添加平台

2.1、所有后续命令需要在项目的目录中运行,其范围内或任何子目录:

cd hello

2.2、添加iOS平台

cordova platform add ios

3.添加自带插件

以console插件为例:

cordova plugin add cordova-plugin-console

插件的调用:

在调用插件的Html的js中添加:

document.addEventListener("deviceready",onDeviceReady, false);

functiononDeviceReady() {

console.log("console.log workswell");

}

此断代码执行后,才可调用console代码。

console.log(‘console.log执行’);

创建自定义插件

1.创建一个自定义cordova插件的文件夹(文件夹内有plugin.xml、src文件夹(内有ios文件夹)、www文件夹)

1.1配置plugin.xml (这个文件是对这个插件的总体配置)

有几个关键的字段需要解释下:

id:插件的标识,即发布到plugins.cordova.io的ID

name:插件的名称

description:描述信息

js-module:对应我们的javascript文件,clobbers元素说明了module.exports自动添加到window对象,让插件方法能够在窗口级别使用。

platform:支持的平台,这里仅仅用到了ios

header-fileOC的.h文件路径

source-fileOC的.m文件路径

1.创建js文件

var exec =require('cordova/exec');

module.exports = {

alert: function(message, completeCallback,title, buttonLabel) {

exec(completeCallback, null,"Notification", "test", []);

},

};

创建完成后放入www文件夹内

参数说明:

exec(successCallback, errorCallback,Notification,test, [arguments]);

successCallback成功回调

errorCallback失败回调

Notification:被调用方法的native对象,即在配置plugin.xml时feature的name。

test:要执行的方法,即native中的方法

arguments:参数数组

2.创建iOS插件

创建CDVNotification类含.h和.m文件

.h文件:

#import

@interfaceCDVNotification : CDVPlugin

- (void)test:(CDVInvokedUrlCommand*)command;

@end

.m文件

#import"CDVNotification.h"

#import

@implementationCDVNotification

- (void)test:(CDVInvokedUrlCommand*)command

{

UIAlertView *alertview =[[UIAlertView alloc] initWithTitle:@"标题"message:@"你好世界!"delegate:selfcancelButtonTitle:@"取消"otherButtonTitles:@"确定",nil];

[alertview show];

}

@end

创建好之后将.h .m文件放入src下的ios文件夹内

参数说明:CDVInvokedUrlCommand是个model类,含有属性:arguments,callbackId,classname,methodname。

若方法要给js返回成功回调:

CDVPluginResult* pluginResult =nil;

pluginResult=[CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:echo];

[self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];

若要返回失败:

pluginResult=[CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR];

[self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];

3.项目添加插件

cordova plugin add(自定义插件的文件夹目录)#名称,也可以是git的地址

完成自定义插件。

上一篇下一篇

猜你喜欢

热点阅读