2015-07-10 60 views
4

我試圖從科爾多瓦相機插件庫獲得的圖像,這是我做的方式:科爾多瓦相機插件,從畫廊獲取完整圖像路徑[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',該屬性已經設置爲您可以在上面看到。

我在做什麼錯?

回答

7

我發現了一個將'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!謝謝人 –

1

您還可以使用單按鈕,確認框的幫助下它:

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

0

我想在你的代碼的問題是在這裏

​​

要麼刪除這條線,或使其

mediaType: Camera.MediaType.PICTURE, 

快樂編碼....

相關問題