13

iOS と Android にインストールするために PhoneGap/Cordova で使用している webapp があります。アプリのある時点で、2 番目のサーバーからコンテンツを読み込む iframe があります。

ブラウザーからアプリを実行すると、すべてが期待どおりに機能します。同じページで iframe が開き、2 番目のサイトからコンテンツが読み込まれます。

Cordova を使用して iPhone シミュレーターで webapp を実行すると、iframe が開くと、iOS は Safari に切り替わり、アプリをバックグラウンドに置きます。

実行した手順:

  1. Cordova.plist ファイルの "ExternalHosts" 配列に 2 番目のサイトを追加しました。
  2. PhoneGap/Cordova のドキュメント ( https://build.phonegap.com/docs/config-xml )に従って、/www ディレクトリの index.html ファイルの隣に config.xml ファイルを作成しました。
  3. メインの <widget> タグの子として <preference name="stay-in-webview" value="true" /> タグを config.xml ファイルに追加しました。

私の疑いは、config.xmlファイルを読み取ったり使用したりしていないということですが、他に何かある可能性があります.

4

3 に答える 3

19

以前使用していたiframeの代わりにInAppBrowserを追加した後、最終的にiframeを再試行しました。これで、iframeは以前のように携帯電話のブラウザーにジャンプせずに動作し、iOSとAndroidの両方で一貫して動作します。 。

iframeが壊れたときから動作を開始したときまで、2つのことが変わりました。

  1. コルドバ2.5にアップグレードしました
  2. 最初に行っていたように、既存のiframeを非表示にするだけでなく、jqueryを使用してiframeを動的に作成/ページに追加し始めました。

    $('<iframe src = "whatever.com" height = "100%" width = "100%" frameborder = "0"> </ iframe>')。appendTo('body'); 。

iframeの問題を修正したのが#1か#2かをわざわざ確認しませんでしたが(おそらく#1だと思います)、PhoneGap/Cordovaアプリでiframeを動作させることは可能だと投稿したいと思いました。他の誰かが同じ問題に遭遇した場合に備えて。

于 2013-03-13T16:25:52.773 に答える
5

InAppBrowser を使用しないのはなぜですか? http://docs.phonegap.com/en/2.3.0/cordova_inappbrowser_inappbrowser.md.html . Android と iOS の両方で動作する iframe を使用するのは難しいでしょう。

于 2013-03-04T23:27:53.933 に答える
0

iOS 8 でも同じことが機能しません。他のdivでスクロールしたりオーバーフローしたりせずにiFrameを取得します。さまざまな CSS スタイルを試しましたが、解決策はありませんでした。Android アプリで正常に動作します。これは最新の Phonegap ビルドを使用しています。

于 2015-05-06T18:38:24.940 に答える