我无法弄清楚为什么这不起作用.. 无法在诺基亚模拟器上检查这个,因为它不模拟相机.. 而手机应用程序崩溃或只是不带任何图片 我尝试了Base64方法和imageURI方法(在html页面上使用不同的按钮)
这是javascript(相机的重复js尝试不同方法的原因):
function camera (){
$('#showpic').css('display','block').html("getting an image");
navigator.camera.getPicture(camerasuccess,camerafail,null);
};
function camerasuccess(imageBASE) {
$('#showpic').css('display','block').html("we have an image");
var imgsrc = "data:image/jpeg;base64,"+imageBASE[0];
$('#imageplace').html('<img src ="'+imgsrc+'"/>');
//var useimg = document.getElementById('useimage');
//
//useimg.style.display = 'block';
//useimg.src = "data:image/jpeg;base64,"+imageBASE;
}
function camerafail(error) {
$('#showpic').css('display','block').html("some error:"+error);
};
function camera2(){
$('#showpic').css('display','block').html("getting an image");
navigator.camera.getPicture(camera2success,camerafail,null);
};
function camera2success (imageURI){
$('#showpic').css('display','block').html("we have an image");
$('#debug').html(imageURI[0]);
if (!imageURI[0]) {
$('#debug').html("no imageURI here");
}
$('#imageplace').html('<img src ="'+imageURI[0]+'"/>');
这是标记(这里也是我采用的不同方法的遗留物):
<div id = "camera">
<input type = "button" id = "camera" value = "base">
<input type = "button" id = "camera2" value = "imageURi"></br>
<span id = "showpic" style = "display:none;">showpic</span><br/>
<span id = "debug"></span></br>
<div id = "imageplace"></div></br>
<img id = "useimage" style = "display:none; width:60px; height:60px " src = ''/>
</div>
另一个通知:如果它有任何意义那么你应该知道我不使用make关闭wgz文件,只需压缩www文件夹并将结尾更改为wgz,大多数js函数(包括geolocation)工作正常。 / p>
答案 0 :(得分:0)
我遇到了类似的问题。我使用的是诺基亚N8。它会触发getPicture方法,我可以拍照。但是,退出“拍照”应用程序的唯一方法是单击“返回”。这将触发成功函数,但不返回任何图像数据。
查看Phonegap的API文档,它说这些是Camera API支持的平台:
经过多次试验和错误后,这显然只有在您希望Camera API将图像作为URI(而不是实际图像数据)返回时才有效,并且还将editable设置为true。尝试这样的事情:
navigator.camera.getPicture(camerasuccess, onFail, { quality: 20, allowEdit: true });
$('#imageplace').html('<img src ="'+imageBASE+'"/>');