如何为ios插件传递Phonegap javascript的参数

时间:2013-02-13 18:53:40

标签: cordova phonegap-plugins

我的要求是为iPad创建phonegap组件 我正在使用XCode 4.2和Phonegap 1.9.0 SDK。

我有一组本机iOS类文件需要用于phonegap。 我为iOS Native Code创建了Plugin类。我的代码还包含javascript代码。我需要通过javascript代码调用iOS代码。

我的iOS代码包含参数Array。我们可以将数组迭代为objectAtIndex 1,2等。如何从带有以下参数的书写插件类调用本机代码

插件代码:

- (void) myMethod:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options
{
  NSString* callbackId = [arguments objectAtIndex:0];

  CDVPluginResult* pluginResult = nil;
  NSString* javaScript = nil;

  @try {
    NSString* myarg = [arguments objectAtIndex:1];

    if (myarg != nil) {
        pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
        javaScript = [pluginResult toSuccessCallbackString:callbackId];
    } 
  } @catch (id exception) {
    pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_JSON_EXCEPTION    messageAsString:[exception reason]];
    javaScript = [pluginResult toErrorCallbackString:callbackId];
  }

    [self writeJavascript:javaScript];
}

原生代码:

-(NSArray*)nativeFunctionDisplay:(NSArray*)args;

我需要在插件类中调用这个本机代码

参数值取自javascript函数。在js文件中,我需要调用插件类并需要传递参数。

Javascript.js:

var arg1;
var arg2;
var arg 3;

PluginClass.callNativeFunction(<How to pass the arguments here>)

我看到了很多样本​​,但是他们尝试将诸如警报消息之类的初始内容作为SUCCESS。

你能帮忙吗?

1 个答案:

答案 0 :(得分:1)

var arg1;
var arg2;
var arg3;

PluginClass.callNativeFunction([arg1, arg2, arg3]);

您只需在Javascript中创建一个数组。

Rohde Fischer为iOS写了一些很好的例子

https://github.com/rohdef/PGPlugins/blob/3_Arguments/www/pluginExample.js