【问题标题】:How can I open an iframe in a phonegap/cordova app running on IOS?如何在 IOS 上运行的 phonegap/cordova 应用程序中打开 iframe?
【发布时间】:2013-02-19 04:56:50
【问题描述】:

我有一个与 PhoneGap/Cordova 一起使用的 web 应用程序,用于在 iOS 和 Android 中安装。在应用程序的某一时刻,我有一个 iframe,它从第二台服务器加载内容。

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

当我使用 Cordova 在 iPhone 模拟器上运行 web 应用程序时,当 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 文件中添加了一个 标记作为主 标记的子标记。

我的怀疑是它没有读取/使用 config.xml 文件,但可能还有其他东西......有没有人知道我可能做错了什么?

【问题讨论】:

    标签: iphone ios cordova iframe


    【解决方案1】:

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

    从 iframe 被破坏到它们开始工作时发生了 2 件事:

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

      $('').appendTo('body'); .

    我没有费心检查解决 iframe 问题的是 #1 还是 #2(我猜是 #1),但我想我会发布它可以让 iframe 与 PhoneGap/ 一起使用Cordova 应用程序,以防其他人遇到同样的问题。

    【讨论】:

      【解决方案2】:

      为什么不使用 InAppBrowser? http://docs.phonegap.com/en/2.3.0/cordova_inappbrowser_inappbrowser.md.html 。使用在 Android 和 iOS 中都可以使用的 iframe 会很棘手

      【讨论】:

      • 感谢您的回复。不支持 iframe 似乎很奇怪......无论如何,InAppBrowser 似乎也有同样的问题 - 它仍然只是我的应用程序的背景并打开 Safari。看起来 Cordova 似乎只是忽略了 config.xml 文件......文档似乎表明只需将 config.xml 文件放在正确的位置会导致它自动加载,但事实似乎并非如此...
      • 实际上,看起来 InAppBrowser 在 Cordova 2.2 中可能不可用。我会尝试升级并重新测试。
      • 如果不想升级,可以使用PhoneGap 2.2的子浏览器插件:github.com/phonegap/phonegap-plugins/tree/master/iOS/…
      【解决方案3】:

      现在在 iOS 8 上同样的事情不工作了。我得到的 iFrame 在其他 div 上没有滚动和溢出。尝试了各种css样式,但没有解决方案。在 Android 应用上运行良好。 这是使用最新的 Phonegap 版本。

      【讨论】:

        猜你喜欢
        • 2013-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-24
        • 1970-01-01
        • 2018-02-08
        • 1970-01-01
        相关资源
        最近更新 更多