如何在IOS上运行的phonegap / cordova应用程序中打开iframe?

时间:2013-03-04 23:01:21

标签: iphone ios cordova iframe

我有一个webapp,我正在使用PhoneGap / Cordova在iOS和Android上安装。在应用程序的某一点上,我有一个从第二台服务器加载内容的iframe。

当我从浏览器运行应用程序时,一切都按预期工作 - iframe在同一页面中打开并从第二个站点加载内容。

当我使用Cordova在iPhone模拟器上运行webapp时,当iframe打开时,iOS会切换到Safari并将我的应用程序置于后台。

采取的步骤:

  1. 我将第二个站点添加到Cordova.plist文件中的“ExternalHosts”数组。
  2. 根据PhoneGap / Cordova文档(https://build.phonegap.com/docs/config-xml),我在/ www目录中的index.html文件旁边创建了一个config.xml文件。
  3. 我添加了< preference name =“stay-in-webview”value =“true”/>标记到config.xml文件作为主<小部件>的子级标签
  4. 我怀疑它不是在阅读/使用config.xml文件,但可能还有其他东西......有没有人有任何想法我可能做错了什么?

3 个答案:

答案 0 :(得分:19)

在添加InAppBrowser代替我之前使用的iframe之后,我最终再次尝试了iframe,iframe现在可以正常工作,而不会跳转到手机的浏览器,就像以前一样,并且iframe在两者中都是一致的iOS和Android。

从iframe破解到开始工作时,有两件事发生了变化:

  1. 我升级到Cordova 2.5
  2. 我开始使用jquery动态创建/添加iframe到页面,而不仅仅是取消隐藏已经存在的iframe,就像我最初做的那样:

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

  3. 我没有费心去检查修复iframe问题是#1还是#2(我猜它是#1),但我想我会发帖说可以让iframe使用PhoneGap / Cordova应用程序,以防其他人遇到同样的问题。

答案 1 :(得分:5)

为什么不使用InAppBrowser? http://docs.phonegap.com/en/2.3.0/cordova_inappbrowser_inappbrowser.md.html。使用既适用于Android又适用于iOS

的iframe将会非常棘手

答案 2 :(得分:0)

现在iOS 8的相同功能无效。我得到的iFrame没有滚动和溢出其他div。试过各种CSS样式,但没有解决方案。适用于Android应用程序。 这是使用最新的Phonegap版本。