So, our camera API doesn't have error codes. Per the docs, it returns a string [1]. Gnarly.
The strings are also all different across platforms. Android [2] and iOS [3] (search for "error"). For extra-good times, BlackBerry-webworks-java [4] does not ever return an error, except in the case where the file is deemed "too big" [5]. So, if the camera app is closed, we don't return an error code back to the user for this platform, which is different from iOS + Android. BlackBerry-webworks-air registers JS-based callbacks using the BB HTML5 transport API [6]. Unfortunately I can't find documentation about what kind of parameters are passed into the error callbacks (anyone from RIM help me out?). Finally, if the camera is closed, no callback gets invoked either [7], which is at odds with Android + iOS. BlackBerry 10 implementation [8] no-ops the onCancel and onInvoke callbacks as well, which again, is at odds. --- Proposal: add error codes. [1] http://docs.phonegap.com/en/2.1.0/cordova_camera_camera.md.html#cameraError [2] https://github.com/apache/incubator-cordova-android/blob/master/framework/s rc/org/apache/cordova/CameraLauncher.java#L352-L363 [3] https://github.com/apache/incubator-cordova-ios/blob/master/CordovaLib/Clas ses/CDVCamera.m#L80 [4] https://github.com/apache/incubator-cordova-blackberry-webworks/blob/master /framework/ext/src/org/apache/cordova/camera/Camera.java [5] https://github.com/apache/incubator-cordova-blackberry-webworks/blob/master /framework/ext/src/org/apache/cordova/camera/Camera.java#L225 [6] https://github.com/apache/incubator-cordova-js/blob/master/lib/webworks/air /plugin/air/camera.js [7] https://github.com/apache/incubator-cordova-js/blob/master/lib/webworks/air /plugin/air/camera.js#L27 [8] https://github.com/apache/incubator-cordova-js/blob/master/lib/webworks/qnx /plugin/qnx/camera.js