Я знаю, уже немного поздно, но есть выход (только для iPad). Вы можете использовать стандартный org.apache.cordova.camera
-Plugin. Но надо немного подправить
Первый подкласс CDVCameraPicker
, чтобы вы могли переключать оверлей с помощью cordova-api:
CDVCameraPicker + Overlay.h:
#import "CDVCamera.h"
@interface CDVCameraPicker (Overlay)
@property (nonatomic, strong) id showOverlay;
@end
CDVCameraPicker + Overlay.m:
#import "CDVCameraPicker+Overlay.h"
#import <objc/runtime.h>
static void *overlayKey;
@implementation CDVCameraPicker (Overlay)
@dynamic showOverlay;
- (void) setShowOverlay:(id)showOverlay {
objc_setAssociatedObject(self, overlayKey, showOverlay, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
- (id) showOverlay {
return objc_getAssociatedObject(self, overlayKey);
}
@end
Затем добавьте эти строки в CDVCamera.m сразу после проверки ImagePickerSourceType (строка 132)
if ([cameraPicker.showOverlay intValue] == 1) {
UIImageView *overlay = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 768, 1024)];
overlay.contentMode = UIViewContentModeScaleAspectFill;
overlay.image = [UIImage imageNamed:@"overlay.png"];
}
Не забудьте импортировать свой подклассный CameraPicker в CDVCamera.m
#import "CDVCameraPicker+Overlay.h"
Нет, вы должны редактировать Camera.js
-файл
Добавьте эту строку под другими опциями
var showOverlay = getValue(options.showOverlay, false);
Затем добавьте var
к массиву args
в последнем индексе. И это все. Теперь вы можете переключать свое наложение следующим образом:
navigator.camera.getPicture(onSuccess, onFail, { quality: 40,
destinationType: Camera.DestinationType.FILE_URI,
sourceType: Camera.PictureSourceType.CAMERA,
encodingType: Camera.EncodingType.JPEG,
correctOrientation: true,
saveToPhotoAlbum: true,
showOverlay: false
});