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:
-- 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 iconfinal Image cameraIcon = new Image(ImageNameConstants.CAMERA); cameraIcon.setStylePrimaryName( StyleConstants.CONDITION_ IMAGE); cameraIcon.addClickHandler(new ClickHandler() {@Overridepublic 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) { @Overridepublic void handleSuccess(FileContent file) {}@Overridepublic 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