Cordova 相机插件上的错误
Posted
技术标签:
【中文标题】Cordova 相机插件上的错误【英文标题】:Bug on Cordova camera plugin 【发布时间】:2016-10-24 05:04:04 【问题描述】:我有下面带有cordova-camera-plugin的代码来浏览移动设备上的文件,当我在设备上运行时它只工作一次。下次尝试时,当我选择一个文件时,对话框不会隐藏。
请帮我看看我的代码出了什么问题。
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>
Java 脚本:
$(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 的变量。当 if(kameraMode===true) kamera.getPicture(function(imageData) kameraMode=false; ...................... .. 【参考方案1】:我找到了问题的答案,
问题是,元素监听不止一次点击事件。所以我添加了一个名为 cameraMode 的变量。当
if(kameraMode===true)
kamera.getPicture(function(imageData)
kameraMode=false;
..................
【讨论】:
以上是关于Cordova 相机插件上的错误的主要内容,如果未能解决你的问题,请参考以下文章
Cordova 和 proguard:takePicture 上的相机插件 NPE