我正在将使用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>
模板中的链接现在看起来像这样(请注意,我在这里使用 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>
每当我单击链接时,它都无法打开,并且日志中出现以下错误:
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"
]
]
还有一些关于CDVInAppBrowser.m
源文件的弃用警告。
我一生都无法理解为什么插件没有被使用。其他人可以提出问题可能是什么吗?