cordova 自定义插件(iOS)

1.plugman安装
npm install -g plugman
如果提示 permission denied 需要加 sudo
sudo npm install -g plugman
2.创建插件
sudo plugman create --name 插件名 --plugin_id 插件id --plugin_version 0.0.1
cordova 自定义插件(iOS)

3 创建package.json 文件
cd 上面床架的插件文件夹下,plugman createpackagejson [插件路径]
cordova 自定义插件(iOS)

4.打开TestPlugin文件夹,在src下添加 ios文件夹,在ios文件中添加插件类
cordova 自定义插件(iOS)

插件的类要继承至 CDVPlugin
.h

#import <Cordova/CDVPlugin.h>

@interface PluginDemo : CDVPlugin

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

@end

只输出一句话,检测我们的插件是否能够调起
.m

#import "PluginDemo.h"

@implementation PluginDemo

- (void)doTest:(CDVInvokedUrlCommand *)command {
    
    NSLog(@"插件被调起了");
    
    
}
@end

5.配置上面生成文件夹中的 plugin.xml
cordova 自定义插件(iOS)

6.配置www文件下的TestPlugin.js
cordova 自定义插件(iOS)

自定义插件完成

我们新建一个名为iosApp的cordova项目
将我们的插件导入到cordova项目中 去测试
sudo cordova plugin add [插件路径]
cordova 自定义插件(iOS)

启动项目 在index.html中添加按钮 ,检测是否能调起插件的方法
cordova 自定义插件(iOS)

index.html中的代码

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *;script-src * 'unsafe-inline'">
            
        <meta name="format-detection" content="telephone=no">
        <meta name="msapplication-tap-highlight" content="no">
        <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
        <link rel="stylesheet" type="text/css" href="css/index.css">
        <title>Hello World</title>
    </head>
    <body>
        <div class="app">
            <h1>Apache Cordova</h1>
            <div id="deviceready" class="blink">
                <p class="event listening">Connecting to Device</p>
                <p class="event received">Device is Ready</p>
            </div>
            <Button onclick="TestPlugin.doTest()">测试</Button>
        </div>
        <script type="text/javascript" src="cordova.js"></script>
        <script type="text/javascript" src="js/index.js"></script>
    </body>
</html>