Here it is ...!
-->I am calling cordova implementation from this coding.
//Handles imageCapture icon
final Image cameraIcon = new Image(ImageNameConstants.CAMERA);
cameraIcon.setStylePrimaryName(StyleConstants.CONDITION_IMAGE);
cameraIcon.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Log.debug("onClick");
if (!isReadOnly() && isEditable()){
if (ClientSettings.isMobileNative()){
imageData = imageCapture(); //This might wrong iam not getting data.
FileContent fileContent = new FileContent();
if (imageData != null){
fileContent.setFileContent(imageData.getBytes());
FileRPCServiceAsync cameraRpc = ServiceFactory.getService(FileRPCService.class, FileContent.class);
cameraRpc.saveFile(fileContent,
new BaseAsyncCallback<FileContent>(messagePresenter) {
@Override
public void handleSuccess(FileContent file) {
}
@Override
public boolean handleException(Throwable caught) {
Log.error("Error in saving file status:"
+ ErrorMessageHandler.stringify(caught));
return true;
}
});
}
}
private native String imageCapture()/*-{
if ($wnd.isImageSupported()){
return $wnd.imageCapture();
}else{
//var imageCaptureWidget = $doc.getElementById();
alert("NO-image");
}
}-*/;
});
-->This my JS code.
function isImageSupported(){
var supported = true;
return supported;
}
function imageCapture(){
if(isImageSupported()){
try {
navigator.camera.getPicture(onSuccess, onFail, {
quality: 50,
destinationType: Camera.DestinationType.DATA_URL,
sourceType: Camera.PictureSourceType.CAMERA
});
function onSuccess(imageData) {
return imageData;
}
function onFail(message) {
alert('Failed because: ' + message);
}
} catch(e){
alert("CAPTURE-ERROR-Works On Mobile Devices Only.");
}
}
}
please some one help me after taking image i need that base64 string in js to java async call, how to achieve this by using jsInterop.