Phonegap を使用して作成した iOS アプリを Phonegap 3.1 を使用して iOS7 に移植している最中ですが、ちょっとした問題が発生しました。
target="_blank" attribute
iOS 7 では、 とのハイパーリンクがデフォルトでシステム ブラウザではなくアプリ自体で開かれるという点で、いくつかの重要な変更が加えられたようです (ただし、これは Android や以前のバージョンの iOS では発生しないようです)。これにより、アプリの機能の一部が壊れており、これを修正する必要があります。
InAppBrowser プラグインを使用する方法のように思われるので、プラグインをインストールしました。これを含めるようにconfig.xmlを修正しました:
<feature name="InAppBrowser">
<param name="ios-package" value="CDVInAppBrowser" />
</feature>
テンプレート内のリンクは次のようになります (ここではテンプレート システムとしてハンドルバーを使用していることに注意してください)。
<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
ソース ファイルに関する非推奨の警告もいくつかあります。
プラグインが取り上げられていない理由は、一生わかりません。他の誰かが問題が何であるかを提案できますか?