【问题标题】:iOS / Cordova: InAppBrowser not workingiOS / Cordova:InAppBrowser 不工作
【发布时间】:2014-02-07 20:13:36
【问题描述】:

我正在使用 Cordva (v3.3.0) 和 JQuery Mobile 构建适用于 Android 和 iOS 的应用程序。 现在我正在尝试使用 InAppBrowser 插件。在 Android 上这工作正常,但在 iOS 上,网页似乎在 Cordova WebView 中打开,而不是在系统浏览器中打开。问题是浏览器一打开就无法返回应用,因为没有位置栏/返回按钮。

我已经尝试删除插件并再次添加它,我还将 Cordova 更新到最新版本 (3.3.0)

谁能帮我找到Bug?

谢谢!

config.xml

<access origin="*" />
<feature name="InAppBrowser">
    <param name="ios-package" value="CDVInAppBrowser" />
</feature>

index.html

<a href="#" onclick="window.open('http://google.com', '_system', 'location=yes');" data-role="button" data-icon="arrow-r" data-iconpos="right">Google</a>

日志输出

Resetting plugins due to page load.
Finished load of: https://www.google.ch/?gws_rd=cr&ei=hj31Up7fEYXgygXXXXXXXX

【问题讨论】:

  • 你找到错误了吗?我有同样的问题吗?
  • 看看我写给这个问题的答案。

标签: ios cordova inappbrowser


【解决方案1】:

刚刚找到解决办法。

iOS cordova_plugins.js 文件中缺少以下条目。在 Android 中它是可用的....

{
    "file": "plugins/org.apache.cordova.core.inappbrowser/www/InAppBrowser.js",
    "id": "org.apache.cordova.core.inappbrowser.InAppBrowser",
    "clobbers": [
        "window.open"
    ]
},

【讨论】:

  • 不错的发现!请注意,org.apache.cordova.inappbrowser 也不在该文件的 module.exports.metadata 哈希中。不幸的是,platforms/ios/www/cordova_plugins.js 是自动生成的,并且我对它所做的任何更改都会在我进行构建时被替换。此外,plugins/org.apache.cordova.inappbrowser/plugin.xml 似乎为 iOS 正确定义了 clobbers 数组。这令人费解。
  • 为我解决了。当我删除除 InAppBrowser 之外的所有插件时,cordova_plugins.js 已正确更新。然后我一次添加一个插件,每次编译后检查cordova_plugins.js,直到找到触发错误的插件。不知道如何修复插件,但无论如何我不再使用它了。
  • cordova_plugins 文件在哪里?
【解决方案2】:

您应该将页眉中的页面元数据更改为

<meta http-equiv="Content-Security-Policy" content="img-src * 'self' data:; default-src * 'self' gap: wss: ws: ; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval';">

它对我有用。

【讨论】:

    【解决方案3】:

    对我来说,问题在于 Visual Studio Cordova 工具。我将 Cordova CLI 更新为 5.1.1,但是在 Visual Studio config.xml > Platform 部分我仍然有 4.3.3。因此,当我使用带有新名称的最新 inappbrowser 时,cordova-plugin-inappbrowser 导致它无法正常工作。

    因此,如果您使用的是 Visual Studio,请确保 config.xml 中的版本与命令行相同。 (使用 cordova -version 获取正确的版本)

    【讨论】:

      猜你喜欢
      • 2013-04-19
      • 2013-06-02
      • 2016-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多