2012-05-15 32 views
0

我想讓我的應用程序使用相機拍攝一張照片,然後將此代碼顯示給用戶。我試圖完全遵循phonegap API的規定,但他們不工作,但是當我使用我的代碼放在phonegap示例中,並將函數名稱更改爲phonegap示例使用的內容,然後運行示例腳本,它可以很好地工作。我使用的代碼是未定義的錯誤訪問Android相機

function gotoPicture() { 

    if (/Android/.test(navigator.userAgent)) { 
     try { 
      alert("test2"); 
      navigator.camera.getPicture(setImage,onError,{sourceType: Camera.PictureSourceType.CAMERA, destinationType: Camera.DestinationType.DATA_URL,quality:60}); 
     } //try 
     catch (e) { 
      alert("onerror") 
      alert(e.Message);//test 
     } //catch 
    } //if 
    else { 
     $.mobile.changePage('#expense-page-picture'); 
    } //else 
} //gotoPicture 

的setImage和onError的代碼如下所示

function onError(error) { 
    alert("test1") 
    navigator.notification.alert(error, null, "Error"); 
} 

function setImage(imageData) { 
    alert("test3") 
    artificialReceipt = imageData; 
    /* document.getElementById('expense-form-picture').src = 'data:image/jpg;base64,' + artificialReceipt; */ 
    document.getElementById('expense-form-picture').src = artificialReceipt;  // with cordova 1.5.0, it seems that imageData is a file location 
    $.mobile.changePage('#expense-page-picture'); 
} 

我得到的onerror警報是在抓我從來沒有得到過test1的警告我也會嘗試添加onDeviceReady,看看是否有差別,我相信我已嘗試 之前,我還添加了這上面的代碼什麼都沒有發生

document.addEventListener("deviceready",onDeviceReady,false); 
function onDeviceReady() 
{ 
    alert("i am ready"); 
} 

從來沒有得到ALER我準備好了。

回答

0

首先,你確定你在使用deviceready事件後使用你的功能嗎?

document.addEventListener("deviceready",onDeviceReady,false); 

然後,我們可以看到setImage函數和onError嗎? 我們可以有答覆嗎? 在setImage,你應該有一個形象的說法和onError的,一則消息:

function setImage(image) { 
    console.log(image); 
} 

function onError(message) { 
    console.log('error:' + message); 
} 

而且,你得到了「onError的」警報?

相關問題