2011-09-06 100 views
1

我想找到一個解決方案的網絡應用程序,將能夠離線操作。本地存儲或類似的黑莓操作系統<6.0

因爲所有這些都支持localStorage,所以我很適合iOS和Android以及Blackberry OS 6.0和更高版本。我可以得到一定的黑莓OS低於0.6用的openDatabase本地存儲的信息,但我仍然沒有找到一種方法,使下面的能夠存儲數據的offline-

·黑莓Curve 8900

·黑莓Curve

·黑莓Bold 9700

我不介意我是如何做到這一點的,我非常樂意爲這些BB使用完全不同的設置。

基本上我需要做的就是以任何格式存儲數據。我不介意使用關鍵值或更強大的sqllite或simlar。我只是難住!

這裏是我到目前爲止簡單地檢測是否該設備將接受本地存儲​​ -

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Local Storage Test</title> 
    <script src="http://www.google.com/jsapi"></script> 
    <script type="text/javascript"> 
     google.load("jquery", "1.4.1"); 
    </script> 
    <script type="text/javascript"> 

    function testSupport() 
    { 
     if (localStorage) 
      document.getElementById('content').innerHTML = '<h2 class=\"yes\"><img src=\"http://jealousdesigns.com/webapps/test/tick.png\" /> Yep! This one works (with localStorage)!</h2>'; 


     if (openDatabase) 
      document.getElementById('content').innerHTML = document.getElementById('content').innerHTML + '<h2 class=\"yes\"><img src=\"http://jealousdesigns.com/webapps/test/tick.png\" /> Yep! This one works (with database)!</h2>'; 
    }   

    </script> 
    <style type="text/css"> 
     body{ 
      font-size: 20px; 
      background: #eee; 
      color: #666; 
     } 
     h2{ 
      border-radius: 10px; 
      -webkit-border-radius: 10px; 
      -moz-border-radius: 10px; 
      width: 100%; 
      background: white; 
      text-align: center; 
      padding: 20px 0; 
     } 
     .yes{ 
      border: 1px solid green; 
     } 
     .no{ 
      border: 1px solid red; 
     } 
    </style> 
    </head> 
    <body> 
    <div id="content"> 
     <h2 class="no"><img src="http://jealousdesigns.com/webapps/test/x.png" /> Boo. This one doesn't work</h2> 
    </div> 
    <script> 
     testSupport(); 
    </script> 
    </body> 
</html> 

真的這樣做只是測試的localStorage和的openDatabase,並顯示一條確認消息。

我真的很感謝在操作系統低於6.0的黑莓設備上的一些建議。

謝謝!

+0

有一些奇怪的情況BB和9700一樣,不能將SQLite數據庫保存到內置內存中,但SDCard總是正常工作,其他BB可以同時保存到兩者。那是你所看到的嗎?我不確定這是否是有意或無意的,但我曾經失去了一天中最好的一部分。 –

回答

3

我知道小於OS6的設備沒有本機HTML5支持。我也知道,根據你所說的,你在OS6設備上可以使用這個工具,因此我可以推斷出你正在使用一個爲你訪問本地API的軟件層。

你可以嘗試交換這個框架的webworks + javascript工具包。 http://supportforums.blackberry.com/t5/Web-and-WebWorks-Development/Supporting-Gears-using-HTML5-in-BlackBerry-WebWorks-applications/ta-p/557280

我假設這不是你已經使用的,因爲它沒有一個localstore api。它有一個數據庫api,它應該有很好的跨設備支持,因爲它是由RIM提供的。

爲什麼我認爲這個問題發生在一些OS5手機上,但不是其他人?

只有具有eMMC內存的設備纔可以在其內部存儲器上存儲SQLite數據庫。 這不包括9700,我猜你提到的其他人。 所以你總是可以選擇使用SD卡,如果它存在。

BB存儲概述

這是爲OS5存儲概述文檔的鏈接,它是我見過的最好的介紹:

http://www.blackberry.com/developers/docs/5.0.0api/data_storage-summary.html

選項:

  • 文件和文件夾
  • SQLit È
  • 永久存儲器
  • 運行時存儲
  • MIDP RMS存儲(記錄存儲)

eMMC的存儲器參考=標記佐姆,黑莓發展顧問 http://supportforums.blackberry.com/t5/Java-Development/Sqlite-reading-database-from-device-storage-compatibility-list/td-p/764303/highlight/true/page/2

另外的類型的說明內部存儲器在這裏給出: http://www.blackberry.com/developers/docs/5.0.0api/data_storage-summary.html#DS_FileSystem

+0

謝謝,這很有幫助。我會通讀這些鏈接並回到這裏,讓你知道什麼工作! –

+0

不客氣,我添加了另一個最有用的鏈接。 RIM的OS5數據存儲摘要。這包括我錯過的另一個選項(運行時存儲)和每個選項的示例代碼。 –

+0

事實上,如果其他人有這個問題,我認爲這是他們應該閱讀的第一個文檔。所以我編輯了相應的。 –