2011-09-06 63 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

事实上,如果其他人有这个问题,我认为这是他们应该阅读的第一个文档。所以我编辑了相应的。 –