cordova-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kyle Slack (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CB-12512) No way to get from a FILE_URL to a DATA_URL onsuccess
Date Mon, 27 Feb 2017 17:38:45 GMT

    [ 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-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org


Mime
View raw message