Dear Cordova,
We recently had a crash in iOS because we accidentally wrote this javascript…
Cordova.exec(frontPage.updatePublicationList,frontPage.Error,"MyPlugin","update-list",
null);
I may have messed up the exact syntax during copy/paste/obfusticate but the
essence is that passing null for the parameters causes a crash. But it is
perfectly understandable from a javascript point of view, given that the method
being called takes no parameters.
Cordova doesn't handle this well yet, at least on iOS. Can I propose a small
patch in the iOS code to just defend against this?
diff --git a/CordovaLib/Classes/CDVInvokedUrlCommand.m
b/CordovaLib/Classes/CDVInvokedUrlCommand.m
index 6c7a856..e3ca263 100644
--- a/CordovaLib/Classes/CDVInvokedUrlCommand.m
+++ b/CordovaLib/Classes/CDVInvokedUrlCommand.m
@@ -54,12 +54,14 @@
{
self = [super init];
if (self != nil) {
- _arguments = arguments;
+ if ([arguments isKindOfClass:[NSArray class]]) {
+ _arguments = arguments;
+ [self massageArguments];
+ }
_callbackId = callbackId;
_className = className;
_methodName = methodName;
}
- [self massageArguments];
return self;
}
Thanks and regards.
Carl Peto,
Dennis Publishing
NOTE: The information in this email is confidential and may be legally
privileged, unless stated to the contrary. If you are not the intended
recipient, you must not read, use or disseminate that information.
Any opinions or comments are personal to the writer and do not represent the
official view of Dennis Publishing Ltd. If you have received this email and are
not a named addressee, please contact [email protected] immediately by
reply email and then delete this message from your system. Please do not copy
it or use it for any purpose, or disclose its contents to any other person.
Although this email and any attachments are believed to be free of any virus,
or other defects, it is the responsibility of the recipient to ensure that they
are virus free and no responsibility is accepted by Dennis Publishing Ltd for
any loss or damage arising from the receipt or use thereof.
Company registered in England No. 1138891
Registered office: 30, Cleveland Street, London, W1T 4JD