2016-10-28 38 views
14

我得了很嚴重的情況是...科爾多瓦相機保存到畫廊甚至虛假

我的客戶希望在離子框架V1一科爾多瓦的應用程序,它的當務之急是相機不圖像保存到畫廊。但是,當我將保存到圖庫的參數設置爲false時,它仍然保存到圖庫中。

當您拍攝照片並取消照片時,Android會出現此問題。然後它將該圖片保存到圖庫中,並且有時甚至保存之後的所有其他圖片。

我真的很歡迎任何形式的幫助;到目前爲止,我發現的所有解決方案都非常難以理解,因爲我對Java的知識爲零。

這裏是我的JS代碼

function capturePhoto() { 
    var maxDimension = 1280; 
    var options = { 
     quality: 80, 
     destinationType: Camera.DestinationType.DATA_URL, 
     sourceType: Camera.PictureSourceType.CAMERA, 
     correctOrientation: true, 
     targetWidth: maxDimension, 
     targetHeight: maxDimension, 
     saveToPhotoAlbum: false 

    }; 

這對於相機的選擇。

$cordovaCamera.getPicture(options).then(function (imageData) { 
     var src = "data:image/jpeg;base64," + imageData; 
     $scope.photoPreviewSrc = src; 
    }).catch(function (err) { 

    }); 
    } 
+0

我很困惑 - 如果你正在做科爾多瓦應用程序,Java會進入這個領域嗎? – EJoshuaS

+3

嗯插件是用java寫的android ...所以也許有人用java的知識已經有了這個問題.. – revan1990

+0

我已經驗證了相同,但它按預期工作。我已將saveToGallery標誌設置爲true。如果我取消,圖像不會保存。當我點擊確定,圖像被保存到圖庫。 – vbharath

回答

2

我檢查了您的代碼使用科爾多瓦。它按預期正常工作。 在其他設備上驗證您的應用一次。

我還沒有在離子平臺上檢查過它。

+1

當您將savetogallery設置爲false並在取消後取消圖片時,您不會將它保存到圖庫中? – revan1990

+0

否。當您取消時,它會再次顯示相機進行拍攝。圖片未保存在圖庫中。在其他設備上驗證一次 – vbharath

+0

lg g4,samsung s7邊緣和另一個htc設備上的相同行爲.. – revan1990

0

你可能想嘗試收到圖像數據後,運行類似如下:

navigator.camera.cleanup(onSuccess, onFail); 

function onSuccess() { 
    console.log("Camera cleanup success.") 
} 

function onFail(message) { 
    alert('Failed because: ' + message); 
} 

the docs:「camera.cleanup()調用camera.getPicture後刪除被保存在臨時存儲中間圖像文件僅適用於Camera.sourceType的值等於Camera.PictureSourceType.CAMERACamera.destinationType等於Camera.DestinationType.FILE_URI。「

以上內容直接關係到您的使用情況。

+1

據我所見,該選項僅適用於IOS ... – revan1990

+0

啊,你是對的。對於那個很抱歉! –

0

這是真的要去照片庫,或只是出現在Android的照片應用程序? Android默認照片瀏覽器將顯示所有照片,屏幕截圖等。它甚至還會顯示隨機圖像 - 其他應用可能在文件系統上顯示,但不是照片。

由於在cordova中,您對操作系統沒有很好的控制,所以您可以使用解決方法:您可以將圖像置於隱藏目錄中(以.開頭,例如.appdata),這會阻止Android自動看到「圖庫」應用程序中的圖像。我在一個離子應用程序中遇到了這個問題,並以這種方式解決了它。

+0

他正在將圖像存儲到/ emulated/0/DCIM/Camera。你是如何通過改變圖像路徑來管理這個解決方案的,你能給我提示嗎? – revan1990

+0

如果你想隱藏它們,你可以把它們放在/storage/emulated/sdcard/.mdir或類似的東西 – EdH