无法在iOS 7上使用Phonegap 3.1的InAppBrowser插件

Mat*_*aly 11 ios cordova inappbrowser ios7

我正在将使用Phonegap构建的iOS应用程序移植到带有Phonegap 3.1的iOS7,我遇到了一个小问题.

iOS 7似乎已经在超链接中做了一些重大更改,target="_blank" attribute现在默认情况下在应用程序本身内打开,而不是在系统浏览器中(这似乎不会发生在Android或iOS的早期版本上).这打破了应用程序的一些功能,我需要纠正这个问题.

使用InAppBrowser插件似乎是要走的路,所以我已经安装了插件.我修改了我的config.xml以包含这个:

<feature name="InAppBrowser">
        <param name="ios-package" value="CDVInAppBrowser" />
</feature>
Run Code Online (Sandbox Code Playgroud)

现在模板中的链接看起来像这样(请注意我在这里使用Handlebars作为模板系统):

<a href="#" onclick="window.externalbrowser = window.open('{{this.url}}, ', '_system', 'location=yes');" data-transition="slide">
    <img alt="Favicon" style="border: 1px solid #ccc;" title="Favicon" class="ui-li-icon" src="{{this.favicon_url}}"></img>
    <p style="font-size: 100%"><strong>Submitted {{this.whenSubmitted}}</strong><br />Last changed {{this.lastChanged}}</p>
</a>
Run Code Online (Sandbox Code Playgroud)

每当我点击链接时,它都无法打开,我在日志中出现以下错误:

Plugin 'InAppBrowser' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.
2013-11-08 10:22:56.753 MyApp[197:60b] -[CDVCommandQueue executePending] [Line 117] FAILED pluginJSON = [
  "InAppBrowser814285423",
  "InAppBrowser",
  "open",
  [
    "http:\/\/www.site.co.uk\/deals-offers-savings\/b?ie=UTF8&node=350613011&tag=page0e-21,",
    "_system",
    "location=yes"
  ]
]
Run Code Online (Sandbox Code Playgroud)

关于CDVInAppBrowser.m源文件还有一些弃用警告.

我不能为我的生活看到为什么插件没有被拿起.任何人都可以建议问题可能是什么?

Bar*_*owe 25

我找到了一个真正的解决方案,而无需重新创建项目.基于这个答案:类似的问答

看来这是因为有时在添加/删除插件后xcode项目文件没有更新.所有文件都已到位,并且config.xml已按顺序排列,但xcode项目无法将新插件文件标记为定位应用程序.

在此输入图像描述

解:

  1. 在xcode中打开您的项目
  2. 导航到相关的插件文件(CDV*.m文件)
  3. 在右侧菜单的"目标成员资格"部分下,确保选中了应用程序的复选框.

在此输入图像描述