科尔多瓦相机插件,从画廊获取完整图像路径[ANDROID]

问题描述:

我试图从科尔多瓦相机插件库获得的图像,这是我做的方式:科尔多瓦相机插件,从画廊获取完整图像路径[ANDROID]

navigator.camera.getPicture(onSuccess, onFail, { 
    quality: 50, 
    sourceType: Camera.PictureSourceType.SAVEDPHOTOALBUM, 
    destinationType: Camera.DestinationType.FILE_URI, 
    mediaType: Camera.MediaType.ALLMEDIA, 
    encodingType: Camera.EncodingType.JPEG 
}); 

但在我“的onSuccess”功能,我得到的格式的图像URI:

"content://com.android.providers.media.documents/document/image%3A1509" 

而且我想要的URI的完整路径的形象,就像我得到它,如果我用,而不是相机:

"file:///storage/emulated/0/Pictures/IMG_20150710_124222.jpg" 

阅读官方文档我已经看到,我应该做的唯一事情就是将属性'DestinationType'设置为'FILE_URI',该属性已经设置为您可以在上面看到。

我在做什么错?

我发现了一个将'content:// ...'格式的URI转换为完整文件路径的插件,它不是完美的解决方案,但是它已经为我工作了,插件是cordova-plugin-filepath ,我用它在的onSuccess回调对getCamera功能:

function onSuccess(imageURI) { 
    window.FilePath.resolveNativePath(imageURI, function(result) { 
    // onSuccess code 
    imageURI = 'file://' + result; 
    . . . 
    }, function (error) { 
    // onError code here 
    } 
} 
+0

我想知道如何让用户在相机和画廊之间进行选择! –

+0

那么只需创建2个按钮,其中一个将属性'sourceType'设置为'Camera.PictureSourceType.SAVEDPHOTOALBUM',另一个将相同属性设置为'Camera.PictureSourceType.CAMERA' – epergo

+0

cool!谢谢人 –

您还可以使用单按钮,确认框的帮助下它:

var txt=confirm("Select photo source"); 
if(txt==true){ 
     navigator.camera.getPicture(onSuccess, onFail, { quality: 50,destinationType: Camera.DestinationType.DATA_URL,saveToPhotoAlbum: true,sourceType: Camera.PictureSourceType.CAMERA}); 
} 
else{ 
    navigator.camera.getPicture(onSuccess, onFail, { quality: 50,destinationType: Camera.DestinationType.DATA_URL,saveToPhotoAlbum: true,sourceType: Camera.PictureSourceType.PHOTOLIBRARY}); 
} 

如果正常,则相机打开 否则如果你点击取消,然后Galery打开

你也可以根据你的需要自定义确认按钮取消按钮。

+0

访问https://craftpip.github.io/jquery-confirm/ for custumized确认框 – Ranjith

我想在你的代码的问题是在这里

​​

要么删除这条线,或使其

mediaType: Camera.MediaType.PICTURE, 

快乐编码....