web-dev-qa-db-ja.com

IOSで実行されているphonegap / cordovaアプリでiframeを開くにはどうすればよいですか?

PhoneGap/Cordovaを使用してiOSおよびAndroidにインストールするWebアプリケーションがあります。アプリのある時点で、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. <preference name = "stay-in-webview" value = "true" />タグをメインの<widget>タグの子としてconfig.xmlファイルに追加しました。

私の疑いは、それがconfig.xmlファイルを読み取ったり使用したりしていないことですが、他に何かがある可能性があります...誰かが私が間違っているかもしれない考えを持っていますか?

13
Troy

以前使用していたiframeの代わりにInAppBrowserを追加した後、最終的にiframeを再試行したところ、以前と同じように電話のブラウザーにジャンプしなくてもiframeが機能し、iOSとAndroidの両方で一貫してiframeが機能します。

iframeが壊れたときから機能し始めるときまでに、2つの点が変更されました。

  1. Cordova 2.5にアップグレードしました
  2. 最初に行っていたように、単にnhiding既存のiframeではなく、jqueryを使用してiframeを動的に作成/ページに追加し始めました。

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

Iframeの問題を修正したのが#1と#2のどちらであるかを気にしませんでした(私はそれが#1だと思います)、それを投稿するつもりだと思いましたIS取得可能他の誰かが同じ問題に遭遇した場合に備えて、PhoneGap/Cordovaアプリで動作するiframe。

19
Troy

InAppBrowserを使用しないのはなぜですか? http://docs.phonegap.com/en/2.3.0/cordova_inappbrowser_inappbrowser.md.html 。 AndroidとiOSの両方で機能するiframeを使用するのは注意が必要です

5
Nishanth Nair

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

0
eyal_katz