В моей Кордову (v3.3) приложение одной страницы используйте следующий код, чтобы получить изображение с камерыnavigator.camera.getPicture не работает должным образом
function takeSkiImage(){
capturePhoto();
}
function capturePhoto() {
// Take picture using device camera and retrieve image as base64-encoded string
alert((navigator.camera.getPicture));
navigator.camera.cleanup();
navigator.camera.getPicture(onPhotoDataSuccess, function fail(error){
alert("failed : " + error.code);
}, {
quality : 90,
targetWidth : 2300,
targetHeight : 1800,
destinationType : Camera.DestinationType.FILE_URI
});
}
function onPhotoDataSuccess(imageURI) {
var gotFileEntry = function(fileEntry) {
alert("got image file entry: " + fileEntry.fullPath);
var gotFileSystem = function(fileSystem) {
fileSystem.root.getDirectory("sample", {
create : true
}, function(dataDir) {
var d = new Date();
var n = d.getTime();
var newFileName = n + ".jpg";
alert("File Downloaded");
// copy the file
fileEntry.moveTo(dataDir, newFileName, null, fsFail);
}, dirFail);
};
// get file system to copy or move image file to
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0,
gotFileSystem, fsFail);
};
// resolve file system for image
window.resolveLocalFileSystemURI(imageURI, gotFileEntry, fsFail);
// file system fail
var fsFail = function(error) {
alert("failed with error code: " + error.code);
};
var dirFail = function(error) {
alert("Directory error code: " + error.code);
};
}
Приведенный выше код работает отлично в NEXUS 7 (v 4.2 устройство) и оповещает камера начинают но в вкладки Самсунгом 4 (v 4.4) устройства оповещения запуск камеры никогда не срабатывает первый раз но goes to camera and able to take picture but not able to save.
когда снова принять новое изображение в то время только старое изображение откладывается , как мудрый взять новое изображение только предыдущее изображение. Как это решить. Любая помощь очень заметна.
Вы можете попробовать с Camera.DestinationType.DATA_URL и посмотреть результаты на обоих устройствах? – AAhad
@AAhad попробовал такое же поведение .. – Vini
Хм, прежде чем пытаться открыть камеру, вызовите это, чтобы очистить кеш. navigator.camera.cleanup(); он может помочь – AAhad