6

私はASP.Net MVCを使用してHTML 5ページを生成するモバイルアプリケーションを開発しています。 HTML 5ページは、jQueryMobileのloadPageを使用してASP.Net MVCを呼び出してページをDOMにロードします。次に、jQueryMobilesのchangePageを使用して、ユーザーのアプリケーションとの対話に基づいてDOMでページをアクティブにします。 MVCアプリケーションを呼び出すと、さまざまなWebサービスが呼び出され、ソースデータを取得してHTMLを構築します。asp.net mvc、jquery mobile、phonegapアーキテクチャのベストプラクティス

AppleとAndroidストアに完成したアプリを提出できるように、PhoneGapをアプリと共に使用する予定です。私のアプリは、デバイスのネイティブ機能(連絡先、ジオロケーションなど)と対話する必要はありません。実際のデバイスのOSと対話する必要はありません(jQuery ajaxをMVCアプリケーションに呼び出す場合を除く)。上記のアプローチは、モバイルデバイス上でWebアプリを実行可能にする適切な方法ですか?

私のアプリケーションはasp.net mvcなので、私のサーバーでホストされるので、AndroidとAppleの店舗に何が届くのですか? PhoneGapはどこにあるのでしょうか? PhoneGapはAndroidやAppleのストアに提出される何らかの実行ファイルを作成しますか?その後、この実行可能ファイルはクライアントデバイスにダウンロードされますか?私は、実行可能ファイルは、アプリケーションのHTMLを取得するURLを介してMVCサイトに呼び出しを行うと仮定していますか?

私はこれを正しく見ていますか?ご協力いただきありがとうございます。

+0

私の質問が投票された理由がわかりません。私はたくさんの研究をしてきました。私はいくつかの明確化が必要です。私が読んできたさまざまなリソースがいろいろあり、いろいろなやり方があります。私の研究を通して、私はアプローチを考え出したと思う。私は私の前提のいくつかの検証が必要です。 –

答えて

5

PhoneGap(または代替品)は必須ではありませんが、HTML/JS/CSSソースからアプリパッケージを作成するのに非常に役立ちます。 Phonegapは実行可能ファイルを作成しません(あなたのIDEはそれを行います)が、JavaScriptからJavaScriptへのフレームワークです(JavaScriptからJavaコードを実行できるようにします)。

Phonegapは基本的に、ブラウザのコードをデバイスのブラウザで解釈できるようにHTML/JS/CSSサイトをwebviewにラップします(ブラウザを通常通りに実行するよりも砂時計になる場合がありますwebviewインスタンスはNitro JSエンジンを取得しないため、Mobile SafariブラウザのWebサイトよりも低速で動作します)。

あなたのサイトが他のどのPhonegap機能も使用していないが、すでにPhonegapに焼き付けられていて、デバイスがPhonegapをダウンロードする必要がないので、独自のwebviewを作成することができます。 Phonegapを使うこともできます。

Phonegap Build(https://build.phonegap.com/)は、アプリパッケージをビルドしてApple/Google/RIM/Windowsアプリストアに送信するために購入できるプログラムです。一般的には、これを行うには独自のIDEを使用するだけです。たとえば、iOSアプリケーションを作成するには、新しいAppleコンピュータを使用する必要があります(iOSパッケージの最新バージョンを構築するには、最新のOSバージョンが必要です)。 iOSアプリのパッケージは、Xcodeで作成した、とEclipse IDEは、あなたのAndroidアプリのパッケージを作成するための非常に一般的な環境であるされていますhttp://developer.android.com/sdk/eclipse-adt.html

私はあなたがそれらにユーザーをナビゲートする$.mobile.changePage()をDOMにページをロードするために$.mobile.loadPage()を使用していると気づきましたページ。 $.mobile.changePage()を使用している場合は、自動的にloadPage()でページを取得します。あなたは、コンテンツをプリロードするloadPage()を使用している場合は、チェックアウトのjQuery Mobileのプリフェッチ能力:http://jquerymobile.com/demos/1.1.0-rc.1/docs/pages/page-cache.html

UPDATE 2014

ため、私は最近、コルドバ3.5使用していくつかのアプリケーションを構築していると、ビルドプロセスはとても大変でした単純化された。パッケージのビルドプロセスは、システムのコンソールから管理されるようになりました。プラグインのインストールからアプリケーションパッケージの再構築までのすべてがずっと簡単です。

+0

あなたのお返事ありがとうございます。 loadPageとchangePageに関しては、jQueryMobileはドキュメンテーションの通りにDOMからページを移動するとDOMからページを削除します。ページはDOM内に存在しないため、changePageは失敗します。だから、私がページ上に着陸するとき、loadPageを使用してDOMに可能性のあるすべてのページをロードしています(これは現在は管理しています)ので、必要に応じてchangePageを呼び出すことができます。各ページには「タイプ」属性があります。そのため、ユーザーが古いページが不要になった新しいエリアに移動すると、特定のタイプのすべてのページを削除できます。より良い方法がありますか? –

+0

'data-dom = cache =" true "'属性を 'data-role ="ページ要素に設定すると、jQuery Mobileはページを移動したときにそのページを削除しません。それ以外の場合は、 'data-role =" page "要素の' data-url'属性を絶対URLに手動で設定するようにしてください。 '$ .mobile.changePage( '/ about-us/default .html ') 'であれば、フレームワークはその文字列をページの' data-url'属性に一致させることができます(既にDOMに存在する場合)。 – Jasper

+0

Gotcha。先端に感謝します。私はパフォーマンスに重点を置いており、DOMがページを埋めるのではないかと心配しています。アプリケーションに異なるセクションがあるので、data-dom-cache = "true"を設定すると、DOMが時間が経つといっぱいになるのではないかと心配しています。だから、私は、それぞれのページが属しているセクションの値を持つ型属性を持つアプローチを作成しました。だから、ユーザーが別のセクションに行くと、古いセクションからすべてのページを削除できます。これはDOMのメンテナンスです。このアプローチは大丈夫ですか?私はDOMがページをいっぱいにするのを嫌っています。あなたの助けをもう一度ありがとう。 –

関連する問題