我有一個在Android和iOS上正常工作的應用程序,但目前在BlackBerry(OS 6.0+)上失敗。該應用程序用於處理所有3種風格,但自從將應用程序轉換爲動態下載更新(而不是每次對某些Javascript稍作更改時重新發布應用程序)時,該應用程序無法通過getDirectory函數。我正在使用Cordova 1.8.1。Phonegap/Cordova getDirectory在BlackBerry上失敗
這裏是我的JavaScript代碼的開始部分,當設備準備好執行:
function onDeviceReady(){
// get the filesystem setup and run the pre-loader (follow the callback road)
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail_FS);
}
function gotFS(fileSystem) {
fileSystem.root.getDirectory("data", {create: true}, gotDir, fail_GD);
}
function gotDir(dir) {
console.log("got dir");
DATADIR = dir;
// code for downloading/updating files goes here
// left out for brevity and lack of relevance at this point
}
function fail_FS(error){
fail(error,'requestFileSystem');
}
function fail_GD(error){
fail(error,'getDirectory');
}
function fail(error,call){
console.log("ERROR: "+call);
console.log(JSON.stringify(error));
}
我得到的1的錯誤代碼從getDirectory調用(GotFS功能)。我添加了額外的評論來測試。這是我知道的:
文件系統= '執着' fileSystem.root.name = 「」 fileSystem.root.fullPath = '文件:///店'
我上選中的文件科爾多瓦here和here和這裏是我在我的config.xml
<feature id="blackberry.system" required="true" version="1.0.0.0" />
<feature id="org.apache.cordova" required="true" version="1.0.0" />
<feature id="blackberry.find" required="true" version="1.0.0.0" />
<feature id="blackberry.identity" required="true" version="1.0.0.0" />
<feature id="blackberry.pim.Address" required="true" version="1.0.0.0" />
<feature id="blackberry.pim.Contact" required="true" version="1.0.0.0" />
<feature id="blackberry.io.file" required="true" version="1.0.0.0" />
<feature id="blackberry.utils" required="true" version="1.0.0.0" />
<feature id="blackberry.io.dir" required="true" version="1.0.0.0" />
<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.event" required="true" version="1.0.0.0"/>
<feature id="blackberry.widgetcache" required="true" version="1.0.0.0"/>
<feature id="blackberry.media.camera" />
<feature id="blackberry.invoke" />
<feature id="blackberry.invoke.BrowserArguments" />
<feature id="blackberry.identity" />
<feature id="blackberry.ui.dialog" />
<feature id="blackberry.system" />
<access subdomains="true" uri="file:///store" />
<access subdomains="true" uri="file:///store/data" />
<access subdomains="true" uri="file:///SDCard" />
<access subdomains="true" uri="*" />
<rim:permissions>
<rim:permit>use_camera</rim:permit>
<rim:permit>read_device_identifying_information</rim:permit>
<rim:permit>access_shared</rim:permit>
<rim:permit>read_geolocation</rim:permit>
</rim:permissions>
在其他的信息...這裏是什麼在我的plugins.xml:
<plugins>
<plugin name="App" value="org.apache.cordova.app.App"/>
<plugin name="Device" value="org.apache.cordova.device.Device"/>
<plugin name="Camera" value="org.apache.cordova.camera.Camera"/>
<plugin name="NetworkStatus" value="org.apache.cordova.network.Network"/>
<plugin name="Notification" value="org.apache.cordova.notification.Notification"/>
<plugin name="Accelerometer" value="org.apache.cordova.accelerometer.Accelerometer"/>
<plugin name="Geolocation" value="org.apache.cordova.geolocation.Geolocation"/>
<plugin name="File" value="org.apache.cordova.file.FileManager"/>
<plugin name="FileTransfer" value="org.apache.cordova.http.FileTransfer"/>
<plugin name="Contacts" value="org.apache.cordova.pim.Contact"/>
<plugin name="Capture" value="org.apache.cordova.capture.MediaCapture"/>
<plugin name="Battery" value="org.apache.cordova.battery.Battery"/>
<plugin name="Media" value="org.apache.cordova.media.Media"/>
<plugin name="ChildBrowser" value="org.apache.cordova.plugins.childbrowser.ChildBrowser"/>
</plugins>
我懷疑這只是一個簡單的問題(就像我在xml中訪問權限時做錯了什麼),但在嘗試了各種不同的事情並在互聯網上搜索之後,我很難過......
任何幫助,將不勝感激。
這是很好的知道......在模擬器中運行怎麼樣?我在那裏遇到同樣的問題。 – mason81 2012-08-21 18:47:15
我會接受這個答案。它不能解決我的問題,但我確實發現BlackBerry設備不支持「傳輸」選項,因此,無論如何,我是否可以讀取這些文件並不重要,因爲我只是將其用作更新的手段它們是動態的,無論如何,我顯然無法對Cordova/Phonegap進行處理。感謝您花時間回答並提供有用的提示。 – mason81 2012-08-24 18:45:48