首先安装插件开发工具
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 |
|