我正在尝试使用phonegap 3.0开发iOS应用程序。 该应用程序使用sharekit插件和GAPlugin进行phonegap,当我使用phonegap 2.9时它正在运行 升级后它会编译,当我尝试访问插件中的函数时,它会给我这个错误。
ERROR: Method 'share:' not defined in Plugin 'ShareKitPlugin' 2013-07-22 22:05:06.976 -[CDVCommandQueue executePending] [Line 116] FAILED pluginJSON = [ "INVALID", "ShareKitPlugin", "share", [ "test", "http:\/\/www.test.com" ] ] ERROR: Method 'initGA:' not defined in Plugin 'GAPlugin' 2013-07-22 22:05:06.977 -[CDVCommandQueue executePending] [Line 116] FAILED pluginJSON = [ "GAPlugin1900170756", "GAPlugin", "initGA", [ "UA-XXXXXX-11", 10 ] ]
答案 0 :(得分:8)
如果你在phonegap 3.0中使用“旧”插件,你应该在插件方法的本机代码中编写hack。例如:
- (void)register:(CDVInvokedUrlCommand*)command
{
self.callbackId = command.callbackId;
NSArray *arguments = command.arguments;
NSDictionary *options = [arguments objectAtIndex:0];
而不是
- (void)register:(NSMutableArray *)arguments withDict:(NSMutableDictionary *)options
self.callbackId = [arguments pop];
答案 1 :(得分:7)
GAPlugin尚不支持Phonegap在2.1.0中引入的新插件签名。 Phonegap / Cordova 3.0.0不再支持旧的插件签名。
新签名是:
- (void)myMethod:(CDVInvokedUrlCommand*)command;
GAPlugin仍然使用:
(有关详情,请参阅https://github.com/phonegap-build/GAPlugin/blob/master/src/ios/GAPlugin.h)。
同样似乎适用于ShareKit插件。
答案 2 :(得分:2)
根据Floerkem的回答,我修改了两个插件
这里的GAPlugin https://github.com/phonegap-build/GAPlugin/issues/16
在这里分享KitPlugin https://github.com/mohamedfasil/ShareKitPlugin-for-Phonegap-3.0