использование камеры API с PhoneGap на Symbian - PullRequest
0 голосов
/ 01 октября 2011

Я не могу понять, почему это не работает .. не могу проверить это на симуляторе Nokia, потому что он не симулирует камеру .. и приложение телефона либо вылетает, либо просто не приносит никакой картинки Я пробовал метод 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 (включая геолокацию) работают нормально. 1009 *

1 Ответ

0 голосов
/ 09 октября 2011

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

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

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

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

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

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