如何将数组作为参数传递给使用iOS的phonegap插件的函数
我正在为iOS编写一个phonegap插件。 在JavaScript文件中 ,我需要将一些数组传递给我的函数。 但是,在.m文件中, [arguments count]只显示我传递给我的函数的'string'参数的个数。 这意味着,传递给我函数的数组在.m文件中无法被理解/看到。
以下是塞纳里奥:
In test.js, I call test() function with 2 arrays and 1 string. In MyPlugin.m, in test() function, however, the number of arguments shown is only 1. ----------- plugin.js -------------------- function MyPlugin(){ }; MyPlugin.prototype.test = function(arg1, arg2, arg3){ PhoneGap.exec('MyPlugin.test', arg1, arg2, arg3); } //.....code is omitted...... ------------------------------------------ ---------------declare plugin---------------- function onDeviceReady() { myPlugin = window.plugins.plugin; } -------------------------------------------------- -----------test.js where function is called---------------- function testPlugin(){ var arr1 = new Array(), arr2 = newArray(), text = 'sample string'; myPlugin.test(arr1, arr2, text); }; ----------------------------------------------------------------------- --------------MyPlugin.m-------------------------- -(void)test:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options { NSUInteger argc = [arguments count]; NSLog(@"Number of arguments: %d", argc); //output: Number of arguments: 1 NSString *text = [arguments objectAtIndex:0]; NSLog(@"%@", text); //output: sample string } ---------------------------------------------------------
所以我的问题是如何将数组传递给iOS的phonegap插件中的javascript函数。
谢谢
我解决这个问题的方法是将数组串化,并将它们作为字符串传递给函数。 然后在.m文件中,我将这些字符串解析为数组。
解决了这个问题。 但是,如果你知道任何其他解决方案,请做推荐。
谢谢,
我偶然发现了同样的问题,并在这里找到了另一个解决方案:
https://groups.google.com/forum/?fromgroups#!topic/phonegap/Agy_9r_7FAc
从cordova.exec函数传递给本机iOS代码的对象/数组存储在options array参数中。 像字符串,整数等常规参数存储在参数数组参数中。
链接地址: http://www.djcxy.com/p/64383.html上一篇: How to pass array as argument to a function using phonegap plugin for iOS