diff --git a/camera/camera.ios.ts b/camera/camera.ios.ts index 26e420878..23c57dee6 100644 --- a/camera/camera.ios.ts +++ b/camera/camera.ios.ts @@ -15,6 +15,7 @@ class UIImagePickerControllerDelegateImpl extends NSObject implements UIImagePic private _width: number; private _height: number; private _keepAspectRatio: boolean; + private _saveToGallery: boolean; public initWithCallback(callback: (result?) => void): UIImagePickerControllerDelegateImpl { this._callback = callback; @@ -26,7 +27,7 @@ class UIImagePickerControllerDelegateImpl extends NSObject implements UIImagePic if (options) { this._width = options.width; this._height = options.height; - + this._saveToGallery = options.saveToGallery; this._keepAspectRatio = types.isNullOrUndefined(options.keepAspectRatio) ? true : options.keepAspectRatio; } return this; @@ -57,9 +58,12 @@ class UIImagePickerControllerDelegateImpl extends NSObject implements UIImagePic var imageSource: typeof imageSourceModule = require("image-source"); var imageSourceResult = image ? imageSource.fromNativeSource(image) : imageSource.fromNativeSource(source); - + if (this._callback) { this._callback(imageSourceResult); + if(this._saveToGallery) { + UIImageWriteToSavedPhotosAlbum(imageSourceResult.ios, null, null, null); + } } } } @@ -82,14 +86,18 @@ export var takePicture = function (options): Promise { var reqWidth = 0; var reqHeight = 0; var keepAspectRatio = true; + var saveToGallery = true; if (options) { reqWidth = options.width || 0; reqHeight = options.height || reqWidth; keepAspectRatio = types.isNullOrUndefined(options.keepAspectRatio) ? true : options.keepAspectRatio; + saveToGallery = options.saveToGallery ? true : false; } if (reqWidth && reqHeight) { - listener = UIImagePickerControllerDelegateImpl.new().initWithCallbackAndOptions(resolve, { width: reqWidth, height: reqHeight, keepAspectRatio: keepAspectRatio }); - } + listener = UIImagePickerControllerDelegateImpl.new().initWithCallbackAndOptions(resolve, { width: reqWidth, height: reqHeight, keepAspectRatio: keepAspectRatio, saveToGallery: saveToGallery }); + } else if (saveToGallery) { + listener = UIImagePickerControllerDelegateImpl.new().initWithCallbackAndOptions(resolve, { saveToGallery: saveToGallery }); + } else { listener = UIImagePickerControllerDelegateImpl.new().initWithCallback(resolve); }