首先安装插件开发工具
1 | |
然后创建插件, 目录无所谓先放在桌面上就行(貌似参数都是必填的)
1 | |
创建完之后得到一个文件和两个文件夹
1 | |
cd到插件文件夹下, 添加 iOS 平台
1 | |
删掉掉自带的文件, 在src的ios目录下编写iOS插件, 比如做一个alert
.h
#import <Cordova/CDV.h> // 注意如果使用继承 CDVPlugin 直接创建的可能不是这个 要改掉 否则会报错
NS_ASSUME_NONNULL_BEGIN
@interface TestAlertPlugin : CDVPlugin
- (void)alertWithjsParams:(CDVInvokedUrlCommand *)jsParams;
@end
NS_ASSUME_NONNULL_END
---------------------------------------------------
.m
- (void)alertWithjsParams:(CDVInvokedUrlCommand *)jsParams {
// 使用js的第一个参数来进行提示
NSString *str = jsParams.arguments[0];
UIAlertController *alert = [UIAlertController alertControllerWithTitle:str message:@"" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *action = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
// 回调给js
CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:@"回调"];
[self.commandDelegate sendPluginResult:pluginResult callbackId:jsParams.callbackId];
}];
[alert addAction:action];
// 获取当前控制器弹出alert
[[self getCurrentVC] presentViewController:alert animated:YES completion:nil];
}
然后在www目录下面编写供前端调用的js接口
1 | |
之后编写plugin.xml配置
1 | |
最后一步, 创建package.json文件, 在插件根目录npm init, 其实写一个名字就好了, 其他的我都没填
1 | |
最后的目录结构:
1 | |
cd 到 cordova 目录下安装插件 cordova plugin add 本地插件目录
引入cordova.js
1 | |
在调用就可以了:
1 | |
