2011-10-01 2 views
0

Я не могу понять, почему это не работает. не может проверить это на симуляторе Nokia, потому что он не имитирует камеру. и приложение для телефона либо сбой или просто не приносят никакого изображения Я пробовал как метод Base64, так и метод imageURI (с разными кнопками на странице html)с помощью камеры api с телефоном на 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]+'"/>'); 

и это разметка (здесь также остатки 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> 

другое уведомление: если это имеет какое-либо значение, то вы должны знать, что я не использую сделать, чтобы закрыть файл WGZ, просто заархивировать папку WWW и изменить окончание WGZ, наиболее Функции js (включая геолокацию) работают нормально.

ответ

0

У меня такая же проблема. Я использую Nokia N8. Он запускает метод getPicture, и я могу сделать снимок. Однако единственный способ выйти из приложения «взять фотографию» - нажать «Назад». Это запускает функцию успеха, но данные изображения не возвращаются.

Глядя на API Docs для PhoneGap, он говорит, что эти поддерживаемые платформы для API камеры:

  • Android
  • Blackberry WebWorks (OS 5.0 и выше)
  • iPhone
  • Windows Phone 7 (Mango)

После долгих проб и ошибок это, по-видимому, работает только в том случае, если вы ожидаете, что камера API, чтобы возвращать изображения в виде URI (а не фактические данные изображения), а также установить для редактирования значение true. Попробуйте что-то вроде этого:

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

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