创建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的地址
完成自定义插件。