0
휴대 기기에서 파일을 찾아보기 위해 cordova-camera-plugin 코드가 있습니다. 기기에서 실행될 때 한 번만 작동합니다. 다음 시도에서 파일을 선택할 때 대화 상자가 숨겨지지 않습니다.Bug on Cordova 카메라 플러그인
제 코드가 잘못되었습니다. HTML :
<div data-page="do-job" class="page navbar-fixed">
<div class="navbar">
<div class="navbar-inner">
<div class="left"><a href="index-content.html" class="link icon-only"><i class="icon icon-back"></i></a></div>
<div class="center"><a href="index-content.html" class="link">Kerjakan Tugas</a></div>
</div>
</div>
<div id="camerass">
<div class="page-content">
<form action="#" id="form">
<input type="hidden" name="attachment" id="post_image" value="">
<input type="hidden" name="job_id" id="job_id" value="">
<div class="list-block inputs-list">
<ul>
<li class="align-top">
<div class="item-content">
<div class="item-inner">
<div class="item-title label">Desc</div>
<div class="item-input">
<textarea class="resizable isi" name="isi" id="isi" rows="4" class='required'></textarea>
</div>
</div>
</div>
</li>
</ul>
<div class="image-list">
<div class="file-chooser">
<i class="fagambar2 fa fa-image"></i>
<i class="fagambar fa fa-plus"></i>
</div>
</div>
</div>
<div class="content-block"><a href="#" class="button button-fill kirim_pekerjaan">Send Job</a></div>
</form>
</div>
</div>
기능인 자바 스크립트가 :
$(document).on('click','.file-chooser', function (e)
{
var ini=$(this);
ini.attr('disabled',true);
var html='';
var opt={
sourceType:0|2,
mediaType: Camera.MediaType.ALLMEDIA
};
navigator.camera.getPicture(function(imageData){
console.log(imageData);
if(isImage(imageData))
{
html+='<div class="image-added" data-src="'+imageData+'" ><img src="'+imageData+'" class="image-kirim-thumbnail"/></div>';
}else
{
html+='<div class="image-added" data-src="'+imageData+'"><i class="fa fa-video-camera"></i> </div>';
}
$('.image-list').prepend(html);
var win = function (r) {
console.log("Code = ");
console.log(r);
var resp=JSON.parse(r.response);
if(resp.STATUS=='SUCCESS')
{
dataUpload.push(resp.DESCRIPTION);
$('#post_image').val(dataUpload.toString());
}
ini.removeAttr('disabled');
}
var fail = function (error) {
console.log('error');
console.log(error);
}
var options = new FileUploadOptions();
options.fileKey = "file";
options.fileName = 'file_image.jpg';
options.httpMethod="POST";
if(getFileType(imageData)=='image')
{
options.mimeType = 'image/jpeg';
}else
{
options.mimeType = 'video/mp4';
}
var params = {};
params.value1 = "test";
params.value2 = "param";
options.params = params;
var ft = new FileTransfer();
var path_url=APIPath+'upload_file/uploadFile/'+window.localStorage.getItem('token_id');
ft.upload(imageData, encodeURI(path_url), win, fail, options);
}, function(msg){
console.log("Error");
console.log(msg);
},opt);
});
....................................., 문제는 요소가 둘 이상의 클릭 이벤트를 수신한다는 것입니다. 그래서 cameraMode라는 변수를 추가합니다. 경우 경우 (kameraMode === TRUE) {false를 kamera.getPicture (함수 (imageData의) {= kameraMode; ................... .......... –