【发布时间】:2012-02-09 04:04:03
【问题描述】:
我正在尝试为能够离线运行的网络应用寻找解决方案。
我对 iOS 和 Android 以及 Blackberry OS 6.0 及更高版本很好,因为所有这些都支持 localStorage。我可以让某些低于 OS 0.6 的 Blackberrys 使用 openDatabase 在本地存储信息,但我仍然无法找到一种方法使以下内容能够离线存储数据-
·黑莓曲线8900
· 黑莓曲线
· 黑莓加粗9700
我不介意我最终如何做到这一点,并且非常乐意为这些 BB 使用完全不同的设置。
基本上我需要做的就是以任何格式存储数据。我不介意必须使用键值或更强大的 sqllite 或类似的。我只是被难住了!
到目前为止,我只是简单地检测设备是否会接受本地存储 -
<!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 的黑莓设备,我真的很感激。
谢谢!
【问题讨论】:
-
有些 BB 有一个奇怪的情况,比如 9700,它们无法将 SQLite 数据库保存到其内置内存中,但 SDCard 始终可以正常工作,其他 BB 可以同时保存到两者。这就是你所看到的吗?我不确定这是否是故意的,但我曾经为此浪费了一天中最美好的时光。
标签: blackberry local-storage opendatabase