3

我正在尝试使用 phonegap 3.0 开发 iOS 应用程序。该应用程序使用sharekit插件和GAPlugin for phonegap,当我使用phonegap 2.9时它正在工作升级后它编译并且当我尝试访问插件中的功能时,它给了我这个错误。

错误:方法“share:”未在插件“ShareKitPlugin”中定义
2013-07-22 22:05:06.976 -[CDVCommandQueue executePending] [第 116 行] FAILED pluginJSON = [
  “无效的”,
  "ShareKitPlugin",
  “分享”,
  [
    “测试”,
    “http:\/\/www.test.com”
  ]
]

错误:插件“GAPlugin”中未定义方法“initGA:”
2013-07-22 22:05:06.977-[CDVCommandQueue executePending] [第 116 行] FAILED pluginJSON = [
  "GAPlugin1900170756",
  “GAP插件”,
  "initGA",
  [
    "UA-XXXXXX-11",
    10
  ]
]
4

3 回答 3

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];
于 2013-08-15T12:55:33.567 回答
7

GAPlugin 还不支持 Phonegap 在 2.1.0 中引入的新插件签名。Phonegap/Cordova 3.0.0 不再支持旧的插件签名。

新的签名是:

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

GAPlugin 仍然使用:

  • (void) initGA:(NSMutableArray*) 带有字典的参数:(NSMutableDictionary*) 选项;

(有关更多详细信息,请参阅https://github.com/phonegap-build/GAPlugin/blob/master/src/ios/GAPlugin.h)。

ShareKit 插件似乎也是如此。

于 2013-07-23T18:36:28.967 回答
2

根据 Floerkem 的回答,我修改了这两个插件

GAPlugin 在这里https://github.com/phonegap-build/GAPlugin/issues/16
ShareKitPlugin 这里https://github.com/mohamedfasil/ShareKitPlugin-for-Phonegap-3.0

于 2013-07-24T08:40:40.023 回答