2012-07-22 174 views
1

因此,我使用以下代碼嘗試調用PlayBook相機並讓用戶拍攝照片。然後應該將圖片作爲文件路徑字符串返回給我。PlayBook相機API(WebKit)會引發異常並且不會打開相機

captureImage: function() { 
    App.log("App.captureImage > Invoked"); 
    try { 
     blackberry.media.camera.takePicture(App.takePictureComplete, App.cameraClosed, App.cameraError); 
    } catch (err) { 
     App.log("App.captureImage > Error Occured: " + err); 
    } 

    App.log("App.captureImage > Complete"); 
}, 

takePictureComplete: function(filePath) { 
    App.log("App.takePictureComeplete > Image taken and file retrieved: " + filePath); 
    App.origin.attr('src', filePath); 
}, 
cameraClosed: function() { 
    App.log("App.cameraClosed > Camera closed."); 
}, 
cameraError: function(err) { 
    App.log("App.cameraError > ERROR: " + err); 
}, 

這裏是發生了什麼的日誌。請注意,沒有任何回調函數或catch塊中的日誌記錄。

app.js:153 App.captureImage > Invoked 
app.js:153 App.captureImage > Complete 
index.html:187 TypeError: 'null' is not an object (evaluating 'response.Response') 

線187的異常被拋出是WebKit的代碼的一部分,包含以下內容:

request.onreadystatechange = function() { 
    // continue if the process is completed 
    if (request.readyState == 4 && request.status == 200) { 
     // retrieve the response 
     var response = JSON.parse(request.responseText, jsonReviver); 
     responseCallback(response.Response); //LINE 187 
    } 
}; 

上午我在這裏做得不對,或這是與API本身有問題?據我所知,我已經完成了與示例文檔相同的操作。

回答

0

我發現問題,我想我們沒有正確的功能或功能有錯誤的順序,相機工作時,我使用以下功能(我發現它在webwork樣品kitchensink): ///// ////////////////////////////////////////////////// ///////////////////////

<rim:permissions> 
    <rim:permit>access_shared</rim:permit> 
    <rim:permit>record_audio</rim:permit> 
    <rim:permit>read_geolocation</rim:permit> 
    <rim:permit>use_camera</rim:permit> 
    <rim:permit>read_device_identifying_information</rim:permit> 
</rim:permissions> 

<!-- 
    Universal APIs: 
     The following features are available on both Smartphone and Tablet OS 
--> 
<feature id="blackberry.app" required="true" version="1.0.0.0"/> 
<feature id="blackberry.app.event" required="true" version="1.0.0.0"/> 
<feature id="blackberry.system" required="true" version="1.0.0.0"/> 
<feature id="blackberry.system.event" required="true" version="1.0.0.0"/> 
<feature id="blackberry.ui.dialog" required="true" version="1.0.0.0"/> 
<feature id="blackberry.utils" required="true" version="1.0.0.0"/> 

<feature id="blackberry.media.camera" required="true" version="1.0.0.0"/> 
<feature id="blackberry.media.microphone" required="true" version="1.0.0.0"/> 
<feature id="blackberry.identity" required="true" version="1.0.0.0"/> 
<feature id="blackberry.invoke" required="true" version="1.0.0.0"/> 
<feature id="blackberry.io.file" required="true" version="1.0.0.0"/> 
<feature id="blackberry.io.dir" required="true" version="1.0.0.0"/> 

<!-- 
    Smartphone APIs: 
     The following features are available ONLY on Smartphone 
--> 
<feature id="blackberry.ui.menu" required="true" version="1.0.0.0"/> 
<feature id="blackberry.identity.phone" required="true" version="1.0.0.0"/> 
<feature id="blackberry.invoke.AddressBookArguments" required="true" version="1.0.0.0"/> 
<feature id="blackberry.invoke.BrowserArguments" required="true" version="1.0.0.0"/> 
<feature id="blackberry.invoke.CalendarArguments" required="true" version="1.0.0.0"/> 
<feature id="blackberry.invoke.CameraArguments" required="true" version="1.0.0.0"/> 
<feature id="blackberry.invoke.JavaArguments" required="true" version="1.0.0.0"/> 
<feature id="blackberry.invoke.MapsArguments" required="true" version="1.0.0.0"/> 
<feature id="blackberry.invoke.MemoArguments" required="true" version="1.0.0.0"/> 
<feature id="blackberry.invoke.MessageArguments" required="true" version="1.0.0.0"/> 
<feature id="blackberry.invoke.PhoneArguments" required="true" version="1.0.0.0"/> 
<feature id="blackberry.invoke.SearchArguments" required="true" version="1.0.0.0"/> 
<feature id="blackberry.invoke.TaskArguments" required="true" version="1.0.0.0"/> 
<feature id="blackberry.message" required="true" version="1.0.0.0"/> 
<feature id="blackberry.message.sms" required="true" version="1.0.0.0"/> 
<feature id="blackberry.pim.Address" required="true" version="1.0.0.0"/> 
<feature id="blackberry.pim.Attendee" required="true" version="1.0.0.0"/> 
<feature id="blackberry.pim.Appointment" required="true" version="1.0.0.0"/> 
<feature id="blackberry.pim.category" required="true" version="1.0.0.0"/> 
<feature id="blackberry.pim.Contact" required="true" version="1.0.0.0"/> 
<feature id="blackberry.pim.Memo" required="true" version="1.0.0.0"/> 
<feature id="blackberry.pim.Recurrence" required="true" version="1.0.0.0"/> 
<feature id="blackberry.pim.Reminder" required="true" version="1.0.0.0"/> 
<feature id="blackberry.pim.Task" required="true" version="1.0.0.0"/> 

<feature id="blackberry.audio" required="true" version="1.0.0.0"/> 
<feature id="blackberry.audio.Player" required="true" version="1.0.0.0"/> 

<feature id="blackberry.find" required="true" version="1.0.0.0"/> 
<feature id="blackberry.phone.Phone" required="true" version="1.0.0.0"/> 
<feature id="blackberry.phone.PhoneLogs" required="true" version="1.0.0.0"/> 

<feature id="blackberry.push" required="true" version="1.0.0.0"/> 
<feature id="blackberry.find" required="true" version="1.0.0.0"/> 

<!-- 
    Tablet OS APIs: 
     The following features are available ONLY on Tablet OS 
    ... 
--> 
<!-- 
COMMENT THE FOLLOWING WHEN BUILDING USING THE SMARTPHONE SDK. 

<feature id="blackberry.payment" required="true" version="1.0.0.0"/> 
--> 

<access subdomains="true" uri="*"/> 

///////////////////////////////////////////////// //////////////////////////// 祝你好運!

相關問題