2011-10-01 84 views
0

我不明白为什么这是行不通的.. 无法检查这在诺基亚模拟器,因为它不模拟相机.. 和手机应用程序或者崩溃或只是不带任何图片 我尝试了Base64方法和imageURI方法(在html页面上使用不同的按钮)使用相机api与phonegap上symbian

这是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]+'"/>'); 

这是标记(这里也是遗留的dif ferent接近我了):

<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的功能(包括地理位置)工作正常。

回答

0

我有类似的问题。我正在使用诺基亚N8。它激发getPicture方法,并且我可以拍照。但是,退出“拍照”应用程序的唯一方法是点击返回。这将激发成功功能,但不会返回图像数据。

看着为PhoneGap的API文档,它说,这些都为相机API支持的平台:

  • 的Android
  • 黑莓WebWorks的(OS 5.0或更高版本)
  • iPhone
  • Windows Phone 7(芒果)

经过大量的试验和错误,这显然只适用于如果你期望相机API将图像作为URI返回(而不是实际的图像数据),并将editable设置为true。试试这样的:

navigator.camera.getPicture(camerasuccess, onFail, { quality: 20, allowEdit: true }); 

$('#imageplace').html('<img src ="'+imageBASE+'"/>');