3

私はASP.NetMVC3アプリケーション(ASP.NET MVC、PHP、またはRAILS cozであるかどうかは関係ありません)を持っています。これはjquery mobileを使用しており、すべてのモバイルブラウザーでうまく機能します。次のステップは、Phonegapを使用してネイティブiOSアプリを作成することです。

私の推測では、Phonegapに配置したhtmlページで行う必要があります。ページの読み込みイベントにフックし、リモートサーバーからMVCビューのコンテンツを動的に読み込みます。

しかし、他の誰かが同様のことをした場合、私はいくつかの例を探しています。

-よろしくお願いしますニック

更新:次のindex.htmlページを作成することで、これを実現できました。それが他の誰かを助けることを願っています。

まだ問題があります:しかし、これを行った...お気づきかもしれませんが、http:// IP:8081URL介してASP.NETMVCページを要求しています。これは正常に機能し、私のページもロードします...しかし、jquerymobile形式ではありません。ですから、誰かがここで私を助けてくれるなら、それは素晴らしいことです。

説明:以来、にajax.responseTextはタグから始まるHTML全体が含まれています<!DOCTYPE html>...<div data-role="page" id="home"> タグ内にHTMLページ全体を挿入することになるのは明らかだと思いますが、これは明らかに間違っていますが、まだ解決策がありません: ((

<!DOCTYPE html>
<html>
<head>
    <title>PhoneGap Ajax Sample</title>
    <meta name="viewport" content="width=device-width,initial-scale=1, target-densityDpi=device-dpi"/>
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css" />
    <script type="text/javascript"  src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
    <script type="text/javascript"  src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
    <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
    <script type="text/javascript">
        function onDeviceReady() {
            var ajax = new XMLHttpRequest();
            ajax.open("GET", "http://192.168.2.30:8081/", true);
            ajax.send();

            ajax.onreadystatechange = function () {
                alert(ajax.status);
                if (ajax.readyState == 4 && (ajax.status == 200 || ajax.status == 0)) {
                    document.getElementById('home').innerHTML = ajax.responseText;
                }
            }
        }

        $(document).bind("mobileinit", function () {
            alert('mobileinit');
            // Make your jQuery Mobile framework configuration changes here!
            $.support.cors = true;
            $.mobile.allowCrossDomainPages = true;
        });

        document.addEventListener("deviceready", onDeviceReady, false);
    </script>
</head>
<body>
     <div data-role="page" id="home"> 
     </div>
     <div data-role="page" id="search"> 
     </div>
     <div data-role="page" id="recent"> 
     </div>
</body>
</html> 
4

2 に答える 2

3

jQueryヘルパーを使用してリモートサーバーからページをロードしてみませんか。

$(document).bind("mobileinit", function () {
     alert('mobileinit');
     // Make your jQuery Mobile framework configuration changes here!
     $.support.cors = true;
     $.mobile.allowCrossDomainPages = true;
     $("#home").load('http://192.168.2.30:8081/ #targetContent');
});

loadメソッドはリクエストを作成し、セレクターの内容をajaxリクエストの結果に置き換えることができます。また、元の一致したセレクターにロードするリモートサーバーからの特定のコンテンツを対象とするURLの後にセレクターを提供することもできます。

于 2012-05-23T23:37:09.263 に答える
0

私が理解しているように、大まかに言えば、PhoneGapには2つのオプションがあります(私はそれらを自分で試していません。今、私はそれらについて学んでいます):

  1. iOS開発環境にPhoneGapをインストールすると、IDEからネイティブiOSアプリを直接生成できます。
  2. PhoneGap Webサイトで、Webアプリケーションをアップロードすると、iOS(またはAndroid)アプリのバイナリが生成されます。
于 2012-05-07T01:39:09.920 に答える