phonegap アプリケーションでホストされている Web アプリがあります (これには phonegap ビルドを使用します)
セットアップは簡単ですが、この場合はそれほど重要ではありません。悪魔は細部に宿る場合があるので、とにかく教えてあげましょう。:)
詳細
phonegap アプリは、実際には 1 つの HTML を使用した最小限のセットアップです。その html は実際にはスプラッシュスクリーンとして機能します。HTML の背景には画像があります。ページを外部 URL にリダイレクトするように設定されたメタ更新タグがあります。これから myurl.com と呼びます。
myurl.com の Web サイトは、jquery mobile と angularjs を使用して構築されています。私はそのアダプターを使用して、ページの読み込み時に dom を操作したい両方のフレームワークの問題を処理します。これは、アプリが実際にホストされ、アプリケーション全体が実行されるドメインです。
セットアップ
1 つのページに外部ページへのリンクがあります。そのページには javascript のブートロードがあり、いくつかの派手なものが表示されます。リンクをクリックすると、アプリはそのページに移動します。それは素晴らしい!実際にはすべてのデバイスで動作します。デスクトップ ブラウザーと Android アプリで、ハードウェア (またはブラウザー) の [戻る] ボタンをクリックするだけで、myurl.com のアプリに戻ります。一方、iPhoneには戻るボタンがありません:(
私の最初の試みは、戻るボタン/リンクとファンシー ページをホストする iframe を持つランディング ページを作成することです。コンソールでいくつかの例外/エラーが発生しても、デスクトップとアンドロイドで動作します。iPhone にはロードされません。セキュリティ上の問題しか考えられません。iframe でやろうとしていることがうまくいかないと言われましたが、これは本当だと思います。
どうすればこれに対処できますか? 私は実際に次のようにInAppBrowserを試しました:
var ref = window.open(url, 'random_string', 'location=yes');
そして、config.xmlにこれがあることを確認しました:
<preference name="stay-in-webview" value="false" />
これも私のページに追加しました:
<script stype="text/javascript" src="phonegap.js"></script>
phonegap ビルドは正しいバージョンを含めることを約束しているため、phonegap.js ファイルを省略します。
戻る可能性がなくても、同じビュー/アプリでページを開きます-通常の方法でリンクを開くだけの場合と同じ結果が得られます。
{ここにジェダイの名前を挿入}、助けてください、あなただけが私の望みです!
編集: 問題が見つかりました。phonegap.js ファイルはデバイスに自動的に展開されるため、最初の index.html (メタ リフレッシュを含む) のみが実際に正しくリンクされます。myurl.com のページがファイルにリンクしていません。phonegap.js を myurl.com に配置しましたが、動作しています。唯一の問題は、phonegap.js がデバイスごとに異なることです。つまり、phonegap.js を選択したデバイスのみが機能しています。他のデバイスは壊れています。
ネイティブアプリファイルにリンクできる場所はどこですか? file:///{path}/phonegap.js を試しましたが、うまくいきません。デバイスごとに異なるパスを確認/推測できますが、iPhoneの場合は Payload{name}.app\www - そこからロードされません...私も試しました
http://localhost/phonegap.js
しかし、それもうまくいきません。
何か案は?
最終編集
製図板に戻って、代わりにすべての html ファイルをデバイスに配置することにしました。代わりに、JSONP を ajax API に実装して、API を myurl.com に公開し、電話からアクセスできるようにします。それはおそらく、phonegap アプリを作成するための意図された方法でもあります-私は他のアプローチがもっと好きでした...