13

我有一个与 PhoneGap/Cordova 一起使用的 webapp,用于安装在 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 文件,但可能还有其他东西......有没有人知道我可能做错了什么?

4

3 回答 3

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),但我想我会发布它可以让 iframe 与 PhoneGap/Cordova 应用程序一起使用,以防其他人遇到同样的问题。

于 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 相同的事情不起作用。我得到的 iFrame 在其他 div 上没有滚动和溢出。尝试了各种css样式,但没有解决方案。在 Android 应用上运行良好。这是使用最新的 Phonegap 版本。

于 2015-05-06T18:38:24.940 回答