1

さて、私はGoogle検索を並べ替え、スタックオーバーフローを並べ替えましたが、これについてどうすればよいかまだよくわかりません.

jqMobi + CSS + HTML 5 を使用して iPhone 用の To Do プログラムを作成したいと考えています。私は jQuery をたくさん使用し、jQuery Mobile で時間を費やし、大量の CSS と HTML を作成しました ( HTML5)。私ができる必要があるのは、ユーザーがプログラムを開いたときに生成するリストを保存することです。

ページを動的に生成してリンクするのに問題はありません...しかし、プログラムを 2 回目に開くと、生成したすべてのページ (IE To Do アイテム) が消えます。これは、ベースプログラムの一部として記述されていないためだと理解しています。これを回避する方法は、これらのリストをファイルまたは DB に保存し、プログラムの起動時にロードすることです。

Titanium Studio (SQL lite をサポート) を使用してこれを行うためのドキュメントを見たことがありますが、ページの生成と一般的な UI はうまくいきません。さらに、そのコードからエミュレーターを実行するには、多くの問題が発生しました。少なくとも、appMobi のアプリを使用してテストすると、コードをコンパイル済みの状態に移植する前に、まともなエミュレーターを使用できると言えます。

いずれにせよ、DBまたはファイル生成を使用してjqMobi + CSS + HTML 5のデータ永続性(プログラムの再起動間)を設定する方法を知っている人はいますか?

編集 x2: @ian さん、このコードを見て、$.ui.addContentDiv() がコンテンツを更新していないように見える理由を教えてください。$(#content).append(文字列); 協力するつもりもないようです。リフレッシュするために呼び出す必要がある関数はありますか? まだ問題があるので、少し削除しました。奇妙なことに、リストへの追加は問題なく機能しますが、その 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リリースのデモとしてミニtodoリストに取り組んでいます。私がすることは、データを文字列化された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#データベース

于 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 に答える