2012-05-05 11 views
3

私はASP.Net MVC3アプリケーションを持っています(ASP.NET MVC、PHP、RAILS cozのいずれかが問題ではありません) plaing HTML)jquery mobileを使用しており、すべてのモバイルブラウザでうまく機能します。 私の次のステップは、Phonegapを使用してネイティブのiOSアプリケーションを作成することです。ASP.Net/Ruby/PHP MVC Webサイト、jQuery Mobile、Phonegap

私はPhonegapに入れたhtmlページにあります。私はページロードイベントにフックし、リモートサーバーからMVCビューの内容を動的に読み込みます。

しかし、他の誰かが類似したことをしている場合、私はいくつかの例を探しています。事前 で

-Thanksニック

UPDATE:私は、次のindex.htmlページを書き込むことによって、これを達成することができました。他の人に役立つことを願っています。

は、現在でもを発行します。しかし、あなたは私がhttp://IP:8081 URLを経由して、私のASP.NET MVCページを要求してい気づくこととして...これを行いました。これはうまく動作し、それも私のページをロードします...しかし、jqueryモバイルフォーマットされていません。だから、もし誰かがここで私を助けることができれば、それは素晴らしいだろう。

説明:ajax.responseText<!DOCTYPE html>タグから始まる全体のHTMLが含まれ、以来...私は私が明らかに間違っているが、私ドン私の<div data-role="page" id="home">タグ内にHTMLページ全体を挿入してしまうことはかなり明白だと思います「tはまだそれのためのソリューションを持っている:(

<!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> 

答えて

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の後にセレクタを指定することもできます。

+0

驚くばかり!質問を読んで回答する時間をとってくれてありがとうございました。それは正しい方向に向いています...私は#targetContentを参照することができ、それがすべての呼び出しでを返さないことが私に打撃を与えなかったのか分かりません.... – StackThis

0

を私の理解では、広い意味では、あなたはPhoneGapの(私はそれらを自分で試していない今、私はそれらについて学んでいます。)との2つのオプションがあります。

  1. あなたのiOS開発環境にPhoneGapをインストールすると、IDEからネイティブiOSアプリケーションを直接生成できます。
  2. PhoneGap Webサイトでは、Webアプリケーションをアップロードして、iOS(またはAndroid)アプリケーションバイナリを生成します。
+0

これは基本的に私の質問です。私はあなたがphonegapにアップロードするhtmlファイルの例を探しています...また、htmlのいくつかのコードを探して、ajax経由で私のビュー(IISサーバーからのページ)をロードし、DHTML経由でコンテンツを置き換えます。 – StackThis

関連する問題