[ https://issues.apache.org/jira/browse/CB-12512?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15886191#comment-15886191 ]
Kyle Slack commented on CB-12512: --------------------------------- This is in fact the goal, to store the DATA_URL for later viewing outside of the mobile application. We have, as a workaround, switched back to the DATA_URL as the problem seems to be specifically related to the quality value being passed in the camera options. We have set this to 30 and can successfully use the DATA_URL method on Android. However, on iOS, this method is proving to not be successful. Where Android is working pretty smoothly now with the DATA_URL option, iOS is now taking around 6 seconds or more delayed between views in our application following capturing a photo. It seems to take the photo and displays in our <img> element just fine. I noticed while debugging that on iOS when the camera is fired, the following error is logged immediately: Failed to load resource: The requested URL was not found on this server. file:///var/containers/Bundle/Application/(UUID)/(application name.app)/www/null Updated Code: viewModel.getPicture = function () { navigator.camera.getPicture(function (data) { //use setTimeout especially w/ iOS to allow time for the UI to replace/resize the controls and statusbar setTimeout(function () { StatusBar.overlaysWebView(true); setTimeout(function () { StatusBar.overlaysWebView(false); }, 250); }, 250); viewModel.txtImageStatus("Loading..."); document.getElementById("image").src = "data:image/png;base64," + data; viewModel.showNoImage(false); document.getElementById("image").style.display = "block"; viewModel.shipment.CustomerPhotoInfo = data; }, function (msg) { if (!msg == "Camera cancelled.") { viewModel.popVisible(true); viewModel.popMessage("Failed: " + msg); }; setTimeout(function () { StatusBar.overlaysWebView(true); setTimeout(function () { StatusBar.overlaysWebView(false); }, 250); }, 250); }, { quality: 30, destinationType: Camera.DestinationType.DATA_URL, saveToPhotoAlbum: false, correctOrientation: true, encodingType: DevExpress.devices.real().platform == "ios" ? Camera.EncodingType.PNG : Camera.EncodingType.JPEG }); } > No way to get from a FILE_URL to a DATA_URL onsuccess > ----------------------------------------------------- > > Key: CB-12512 > URL: https://issues.apache.org/jira/browse/CB-12512 > Project: Apache Cordova > Issue Type: Bug > Components: Android, iOS > Environment: Android 4.0+ / iOS 9.0+ > Reporter: Kyle Slack > > The onsuccess function of the getPicture method uses the FILE_URI to set an > <img> source perfectly fine, however, the conversion of this FILE_URI to get > the image data or DATA_URL is never successful no matter the means attempted. > Even utilizing your posted methods to get the actual file have failed: > window.resolveLocalFileSystemURL(imgUri, function success(fileEntry) - is not > getting to the image, always results in null DATA_URL in the end. > Our method using FILE_URI: > {code} > navigator.camera.getPicture(function (data) { > setTimeout(function () { > StatusBar.overlaysWebView(true); > setTimeout(function () { > StatusBar.overlaysWebView(false); > }, 250); > }, 250); > viewModel.txtImageStatus("Loading..."); > document.getElementById("image").src = data; > viewModel.showNoImage(false); > document.getElementById("image").style.display = "block"; > SavetoShipment(data); > }, function (msg) { > if (!msg == "Camera cancelled.") { > viewModel.popVisible(true); > viewModel.popMessage("Failed: " + msg); > }; > setTimeout(function () { > StatusBar.overlaysWebView(true); > setTimeout(function () { > StatusBar.overlaysWebView(false); > }, 250); > }, 250); > }, { > quality: DevExpress.devices.real().platform == "ios" ? 50 : 100, > destinationType: Camera.DestinationType.FILE_URI, > saveToPhotoAlbum: false, > correctOrientation: true, > encodingType: DevExpress.devices.real().platform == "ios" ? > Camera.EncodingType.PNG : Camera.EncodingType.JPEG > }); > function SavetoShipment(fileURI) { > var fileReader = new FileReader(); > fileReader.onload = function (fileLoad) { > viewModel.shipment.CustomerPhotoInfo = fileLoad.target.result; > }; > fileReader.readAsDataURL(fileURI); > } > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org