4

Twitter Bootstrap に基づいた Web サイトを持っています。いくつかの追加の改善により、携帯電話やタブレットで快適に動作します。しかし、私はそれのための本当のアプリが欲しいので、すべてを複製したくありません. 開始するには、Android のみです。

私が最初に試したのは AppsGeyser でした。かなり簡単ですが、本当に欲しいものではありませんでした。ユーザーがインターネットに接続していない場合、これらの醜いブラウザー メッセージが表示されます。そして、ユーザーが自分の電話のメニューボタンを押すと、Twitter Bootstrap トグルの「メニューバー」からメニューが必要になります。したがって、AppsGeyser は私が望んでいるものではありません。また、iOS のサポートはありません。

次に、PhoneGap でいろいろ試してみました。素晴らしいです! 私が望むことはすべて可能ですが、どのように、または何が最善の解決策ですか? 私が欲しいのは、私の意見で次のとおりです。

  • アプリが起動すると、インターネット接続がチェックされますが、接続されていませんか? キャッシュからロードします。それ以外の場合は、Web サイトを表示するだけです。HTML5 キャッシュ マニフェストの最良の選択? 遊んでみましたが、インターネット接続がない場合にのみキャッシュから読み込みたいです。これまでのところ、これは不可能のようです..?
  • 何らかのフォームが送信される場合は、インターネットに接続されているか、インターネットに接続されていないかをもう一度確認してください。ただの警告: 「インターネットに接続されていません!」ユーザーが行ったように、フォームがまだ入力されているように送信しないでください。クリック/送信時 => Web サイトへの ajax 呼び出し => 失敗しますか? => アラートを表示 => false を返すため、フォームは送信されません。ベストチョイス?
  • 前に言ったように、ユーザーが携帯電話のメニュー ボタンを押すと、Twitter Bootstrap の「メニュー バー」が切り替わることは、私が最後に望むことです。

最初の 2 つのことは問題ないと思いますが、最後のことは...? 私はこれを見つけました: http://docs.phonegap.com/en/1.0.0/phonegap_events_events.md.html#menubutton ウェブサイトが「アプリ内」にある場合は大したことではありませんが、ウェブサイトは必要ありません「アプリで」。インターネットからロードするだけです (または、インターネット接続がない場合はキャッシュします)。何かを変更しても、Web サイトとアプリを変更する必要はありません。ウェブサイトだけ!しかし、「リモート」Web サイトで Cordova を使用することは可能ですか? ウェブサイトが PhoneGap によってアプリを介して実行される場合、それは実行され、機能します!?

たとえば、このコードを自分の Web サイトに配置すると、次のようになります。

document.addEventListener("menubutton", onMenuKeyDown, false);

function onMenuKeyDown() {
    alert('Menu button pressed!');
}

通常の訪問者には何もしませんが、アプリが使用され、webview を使用して PhoneGap アプリから Web サイトが読み込まれる場合、cordova js ファイルを含めますか?

このすべてについて意見をお聞かせください。

ありがとう!

4

1 に答える 1

4

私にとって、PhoneGap での教科書的なアプローチは、アプリケーションを、デバイス上に置いてサーバー側の Web サービスからデータを取得できる自己完結型の JavaScript/HTML/CSS アプリケーションとして作成することです。これには協調的な取り組みが必要であり、一般に、従来のサーバー側の Web アプリ (あなたが説明しているように思われる) のリバース エンジニアリングは特に簡単ではありません。このモデルは優れたパフォーマンスを提供し、更新をリリースせずにアプリケーションのコンテンツを更新できます。

アプリのプレゼンテーション レイヤーを、バックエンドから派生した API によって駆動される JavaScript アプリケーションとして書き直すのが最善の策だと思います。これにより、他のネイティブ アプリと競合する場合に重要な非常に優れたパフォーマンスが得られるはずです。さらに、正しく構築すれば、オフライン機能など (キャッシュ、ロギングなど) が提供されます。

手っ取り早い方法は (おそらく私が推奨するものではありませんが)、デバイスにホームページ (HTML/JS/CSS) のみをパッケージ化し、通常どおり Web コンテンツにリンクすることです。これは私が以前に使用したアプローチではありませんが、完全にうまくいくはずです。このアプローチを jQuery Mobile などのツールキットと組み合わせてオフライン機能を組み込みたい場合は、うまく機能するはずです (jQM は、sae ごとにオフライン機能を提供しませんが、独自のオフライン処理を構築するための適切な基盤を提供するはずです)。

これが役立つことを願っています!

于 2012-10-16T21:56:37.113 に答える