[
https://issues.apache.org/jira/browse/CB-13732?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16315026#comment-16315026
]
Shemrick Flannigan commented on CB-13732:
-----------------------------------------
[~jcesarmobile] Yes here are the applicable functions. Of note, the images are
purposely not compressed; they are set at 100% of their original file size and
quality.
I'll also email you the sample Cordova app which includes this code, so that
you can observe the delay with the selection of large images.
{code:javascript}
function onDeviceReady() {
const pictureSource = navigator.camera.PictureSourceType;
const destinationType = navigator.camera.DestinationType;
// Modal window to select Import Photo or Take Photo
self.uploadImage = function() {
navigator.notification.confirm('Add photo',
onOptionSelectionConfirm, 'Add Photo', ['Cancel','Import Photo','Take photo']);
};
function onOptionSelectionConfirm(button) {
if (button === 1) {
//Cancel Button
} else if (button === 2) {
// Import Photo button
getPhotoFromLibrary(pictureSource.SAVEDPHOTOALBUM);
} else if (button === 3) {
// Take photo button
getPhotoFromCamera();
}
}
// For capturing photo with a URI return from photo album
function getPhotoFromLibrary(source) {
// Retrieve image file location from specified source
navigator.camera.getPicture(uploadPhoto, onGetPhotoFail, {
quality: 100,
destinationType: destinationType.FILE_URI,
sourceType: source,
correctOrientation: true,
});
}
// For capturing single photo with a URI return from camera directly
function getPhotoFromCamera() {
//alert("starting camera");
// Retrieve image file location from specified source
navigator.camera.getPicture(uploadPhoto, onGetPhotoFail, {
quality: 100,
destinationType: destinationType.FILE_URI,
saveToPhotoAlbum: true,
correctOrientation: true,
});
}
// Called if something bad happens
function onGetPhotoFail(message) {
showToast.long('Photo capturing failed because: ' + message);
}
function uploadPhoto(imgUri) {
$cordovaProgress.showSimpleWithLabelDetail(true, "Please
wait...", "Image uploading...");
userService.uploadUserAvatar(imgUri).then(res => {
console.log('New Photo Path ===>', res)
self.user.userPhoto = res;
$cordovaProgress.hide();
});
}
{code}
> Delay in returning control to the Webview increases in duration based on
> selected image file size
> -------------------------------------------------------------------------------------------------
>
> Key: CB-13732
> URL: https://issues.apache.org/jira/browse/CB-13732
> Project: Apache Cordova
> Issue Type: Bug
> Components: cordova-plugin-camera
> Environment: Android: OS 7.0, Phone Model: Moto G5 Plus
> iOS: OS 10.1.1 (14B150)
> Reporter: Shemrick Flannigan
> Labels: android, camera, cameraui, ios
>
> ISSUE
> Selecting a large image through the plugin creates a delay before returning
> control to the Cordova app which uses the plugin
> Current Behavior
> # Selecting a large image (in filesize) through the plugin creates a delay
> before returning control to the Cordova app which uses the plugin. This
> includes both:
> #* Camera capture
> #* Image gallery
> # This delay increases in a linear fashion with the filesize of the selected
> image
> Expected Behavior
> # Selecting an image should:
> #* Return control immediately to the Cordova app which uses the plugin
> #* Continue the data transfer of the image to the Cordova app in a background
> thread
> #* Include a callback function to indicate that the data transfer of the
> image to the Cordova app is complete
> # This includes both:
> #* Camera capture
> #* Image gallery
> # All image file sizes should return control to the Cordova app which uses
> the plugin at the same speed including:
> #* 5MB image
> #* 11MB image
> #* 15MB image
> #* 20MB image
> # # Platforms affected
> #* Android
> #* iOS
> REFERENCES
> # Here are sample test images:
> #* [5MB image |
> https://www.dropbox.com/s/gq81736zzh9jqah/User_Profile_Image_Upload_Test_5MB.jpg?dl=0]
> #* [11MB image |
> https://www.dropbox.com/s/i5ep7bn87upm74q/User_Profile_Image_Upload_Test_11MB.jpg?dl=0]
> #* [15MB image |
> https://www.dropbox.com/s/rk9azn91e5sq7d0/User_Profile_Image_Upload_Test_v2_15MB.jpg?dl=0]
> #* [20MB image |
> https://www.dropbox.com/s/9fz9996nzo6g3yo/User_Profile_Image_Upload_Test_v1_20MB.jpg?dl=0]
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]