Friday, April 13, 2018

Re: How can i send data from Java Script to gwt Coding using JsInerop.

Your Java code isn't async, but your JSNI method and JS function are - the imageCapture() method is passing an async function to `navigator.camera.getPicture`, and expected it to return right away. Instead, your `imageCapture` method should take a java-annotated @JsFunction and pass that in place of onSuccess (and probably onFailure too).

On Wednesday, April 11, 2018 at 12:55:18 AM UTC-5, cRaZy cRuZz wrote:
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.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment