在symbian上使用带有phonegap的Camera api

时间:2011-10-01 17:10:11

标签: cordova symbian

我无法弄清楚为什么这不起作用.. 无法在诺基亚模拟器上检查这个,因为它不模拟相机.. 而手机应用程序崩溃或只是不带任何图片 我尝试了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>

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题。我使用的是诺基亚N8。它会触发getPicture方法,我可以拍照。但是,退出“拍照”应用程序的唯一方法是单击“返回”。这将触发成功函数,但不返回任何图像数据。

查看Phonegap的API文档,它说这些是Camera API支持的平台:

  • Android
  • Blackberry WebWorks(OS 5.0及更高版本)
  • iPhone
  • Windows Phone 7(芒果)

经过多次试验和错误后,这显然只有在您希望Camera API将图像作为URI(而不是实际图像数据)返回时才有效,并且还将editable设置为true。尝试这样的事情:

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

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