1

好吧,我已经通过谷歌搜索进行了排序,我已经通过堆栈溢出进行了排序,但到目前为止我还不知道如何解决这个问题。

我想使用 jqMobi + CSS + HTML 5 为 iphone 构建一个 To Do 程序。我使用过很多 jQuery,花了一些时间使用 jQuery Mobile 并完成了大量的 css 和 HTML,(虽然很少使用HTML5)。我需要做的是保存用户在打开程序时生成的列表。

我在动态生成和链接页面时没有问题......但是当您第二次打开程序时,我生成的所有页面(IE To Do Items)都消失了。我知道这是因为它们不是作为基本程序的一部分编写的。我想到解决这个问题的方法是将这些列表保存到文件或数据库中,然后在程序启动时加载它们。

我已经看到使用 Titanium Studio 执行此操作的文档(它支持 SQL lite),但是页面的生成和一般的 UI 很糟糕。此外,从该代码运行模拟器给我带来了很多麻烦。至少我可以说,在将代码移植到编译状态之前,使用 appMobi 的应用程序进行测试可以为您提供一个不错的模拟器。

无论如何,有谁知道如何为 jqMobi + CSS + HTML 5 设置数据持久性(在程序重新启动之间)并生成数据库或文件?

编辑 x2: 既然我让你上钩了@ian,你能看一下这段代码并告诉我为什么 $.ui.addContentDiv() 似乎没有更新内容吗?$(#content).append(string); 似乎也不想合作。我需要调用一些函数来使其刷新吗?拆了一点还是有问题。奇怪的是,追加到列表中工作得很好,但是当我尝试添加该 div 层时,它不存在......

代码如下:

function genPage( id, list, parent ) {
    var content = '<div id="' + id + '" class="panel">' + id + '</div>';    
    var threadLink='<li><a href="#' + id +'">' + id + '</a></li>';      
    $("#" + list).append(threadLink);
    $("#content").append(content);

    //$.ui.addContentDiv(id, content, id);
}
4

3 回答 3

2

我是 jqMobi 的首席开发人员,所以我很乐意帮助您解决问题。

我正在制作一个迷你待办事项列表作为 1.0 版本的演示。我要做的是将数据作为字符串化 JSON 对象存储在 window.localStorage

但如果这是一个 appMobi 应用程序,那么我们有类似的 AppMobi.cache.cookies。唯一的区别是 AppMobi.cache 允许您存储更多数据。

随时查看http://forums.appmobi.com以获得更多帮助。

于 2012-02-01T13:01:11.490 回答
1

你有没有想过使用PhoneGap?它有一个数据库库,可用于将所有数据保存到 sqlite 数据库。http://docs.phonegap.com/en/1.5.0/phonegap_storage_storage.md.html#Database

于 2012-04-09T14:13:57.827 回答
0

这是我第一次获得 json 和 cookie 以供任何可能觉得有用的人使用。它只是一个原型,所以它不会做太多事情。为了简单起见,我删除了 AppMobi 的开发环境添加的额外 javascript。

编辑:看起来 JSON 对于数据结构非常有效,只要您不尝试做任何特别数据密集型的事情。看起来 appMobi 的 AppMobi.cache 也适用于 cookie。这是我演示基本 cookie 操作/JSON 字符串的迷你脚本。

代码:

<!DOCTYPE html><!--HTML5 doctype-->
<html>
<head>
<title>Your New Application</title>
<meta http-equiv="Content-type" content="text/html; charset=utf-8"> 
<style type="text/css">
    /* Prevent copy paste for all elements except text fields */
    *  { -webkit-user-select:none; -webkit-tap-highlight-color:rgba(255, 255, 255, 0); }
    input, textarea  { -webkit-user-select:text; }

    /* Set up the page with a default background image */
    body {
        background-color:#fff;
        color:#000;
        font-family:Arial;
        font-size:48pt;
        margin:0px;padding:0px;
        background-image:url('images/background.jpg');
    }
</style>
<script type="text/javascript" charset="utf-8" src="http://localhost:58888/_appMobi/appmobi.js"></script> 
<script type="text/javascript" charset="utf-8" src="http://localhost:58888/_appMobi/xhr.js"></script> 
<script type="text/javascript">

function setCookie() {
    var value = document.getElementById('cookie').value;
    AppMobi.cache.setCookie("test", value, 1);
}

function testbed() {
alert("Trying new things!");
var jsonobj = {"bindings": [
        {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
        {"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
        {"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
    ]
};

var test = jsonobj.bindings[0].method;
alert(test);
}

function getCookie(){
    var cookie = AppMobi.cache.getCookie("test");
    document.getElementById("cookievalue").innerHTML = cookie;
}

</script>

</head>
<body>
<form action="javascript: setCookie()">
<input type="text" id="cookie" value="set a cookie">
<input type="submit">
</form>

<p id="cookievalue"></p>

<form action="javascript: getCookie()">
<input type="submit" value="Get a Cookie">
</form>

<form action="javascript: testbed()">
<input type="submit" value="try new things">
</form>
</body>
</html>
于 2012-02-02T01:07:29.793 回答