Javascript Phonegap/Cordova 2.9自定义插件创建。有工作实例吗?

Javascript Phonegap/Cordova 2.9自定义插件创建。有工作实例吗?,javascript,ios,cordova,Javascript,Ios,Cordova,我知道github上有很多phonegap/cordova插件的例子,但我发现这些插件的构建方式有很多不一致之处。结构看起来是一样的(大多数情况下),但几乎每种结构的代码和实现都不同。这让我问了几个问题 2.9文档说要使用在配置中声明插件的方法,但我得到的构建警告说要使用这种方法。我应该两者都用吗 在javascript中,声明/实例化插件的正确方法是什么 我是通过window.MyPlugin.myMethod引用插件的方法,还是仅仅是window.myMethod 我有更多的问题,但代码

我知道github上有很多phonegap/cordova插件的例子,但我发现这些插件的构建方式有很多不一致之处。结构看起来是一样的(大多数情况下),但几乎每种结构的代码和实现都不同。这让我问了几个问题

  • 2.9文档说要使用在配置中声明插件的方法,但我得到的构建警告说要使用这种方法。我应该两者都用吗

  • 在javascript中,声明/实例化插件的正确方法是什么

  • 我是通过window.MyPlugin.myMethod引用插件的方法,还是仅仅是window.myMethod

我有更多的问题,但代码将是惊人的


有没有人有一个绝对简单的例子,可以为cordova 2.9定制一个适用于iOS平台的插件?

这是我几天前写的一个非常简单的插件,它只是为了测试构建一个基于iOS的cordova插件

JS:

致电:

<button onclick="window.plugins.tester.test()">TEST PLUGIN</button>
测试插件
TestPlugin.h:

#import <Cordova/CDV.h>

@interface TestPlugin : CDVPlugin

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

@end
#导入
@接口测试插件:CDVPlugin
-(无效)测试:(CDVInvokedUrlCommand*)命令;
@结束
TestPlugin.m:

#import "TestPlugin.h"
#import <Cordova/CDV.h>

@implementation TestPlugin

- (void)test:(CDVInvokedUrlCommand*)command
{
    CDVPluginResult* pluginResult = nil;
    NSString* testString = [command.arguments objectAtIndex:0];

    if (testString != nil && [testString length] > 0) {
        pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:testString];
    } else {
        pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR];
    }

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

@end
#导入“TestPlugin.h”
#进口
@实现TestPlugin
-(无效)测试:(CDVInvokedUrlCommand*)命令
{
CDVPluginResult*pluginResult=nil;
NSString*testString=[command.arguments objectAtIndex:0];
如果(testString!=nil&&[testString length]>0){
pluginResult=[CDVPluginResult resultWithStatus:CDVCommandStatus\u确定消息字符串:testString];
}否则{
pluginResult=[CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR];
}
[self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
}
@结束
添加到/platforms/ios/{PROJECT_NAME}/Resources/config.xml:

    <plugin name="TestPlugin" value="TestPlugin" />

首先,这是一个很好的回答。我非常欣赏简洁而透彻的代码。非常感谢。我遇到了几天来一直在努力解决的同一个问题。当我点击测试按钮时,什么也没发生。也许我没有在正确的地方寻找错误。不过,控制台中似乎没有显示任何内容。有什么想法吗?
    <plugin name="TestPlugin" value="TestPlugin" />