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

Tro*_*roy 13 iphone iframe ios cordova

我有一个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. 我在config.xml文件中添加了<preference name ="stay-in-webview"value ="true"/>标记作为主<widget>标记的子标记.

我怀疑它不是在阅读/使用config.xml文件,但可能还有其他东西......有没有人有任何想法我可能做错了什么?

Tro*_*roy 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'); .

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


Nis*_*air 5

为什么不使用InAppBrowser?http://docs.phonegap.com/en/2.3.0/cordova_inappbrowser_inappbrowser.md.html.使用既适用于Android又适用于iOS的iframe将会非常棘手