diff --git a/plugin.xml b/plugin.xml index 0f9ad2e..efcf471 100644 --- a/plugin.xml +++ b/plugin.xml @@ -32,8 +32,8 @@ - - + + diff --git a/src/firefoxos/camera.js b/src/firefoxos/camera.js new file mode 100644 index 0000000..270f221 --- /dev/null +++ b/src/firefoxos/camera.js @@ -0,0 +1,32 @@ + +var firefoxos = require('cordova/platform'); + +function getPicture(cameraSuccess, cameraError, cameraOptions) { + cameraError = cameraError || function(){}; + var pick = new MozActivity({ + name: "pick", + data: { + type: ["image/png", "image/jpg", "image/jpeg"] + } + }); + pick.onerror = cameraError; + pick.onsuccess = function() { + // image is returned as Blob in this.result.blob + // we need to call cameraSuccess with url or base64 encoded image + if (cameraOptions && cameraOptions.destinationType == 0) { + // TODO: base64 + return; + } + if (!cameraOptions || !cameraOptions.destinationTyoe || cameraOptions.destinationType > 0) { + // url + return cameraSuccess(window.URL.createObjectURL(this.result.blob)); + } + }; +} +var Camera = { + takePicture: getPicture, + cleanup: function(){} +}; + +firefoxos.registerPlugin('Camera', Camera); +