簡體   English   中英

Cordova相機插件,從圖庫[ANDROID]獲取完整的圖像路徑

[英]Cordova camera plugin, obtain full image path from gallery [ANDROID]

我正試圖從帶有cordova相機插件的畫廊中獲取圖像,這就是我這樣做的方式:

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 ,我在getCamera函數的onSuccess回調中使用它:

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

您也可以在確認框的幫助下使用單個按鈕執行此操作:

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

您還可以根據需要自定義確認按鈕的確定取消按鈕。

我想你的代碼中的問題就在這里

mediaType: Camera.MediaType.ALLMEDIA,

要么刪除此行,要么刪除它

 mediaType: Camera.MediaType.PICTURE,

快樂的編碼....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM