私がする必要があるのは、App Link から iPad のブラウザー (Safari、Chrome など) への外部 Web ページ リンクを開くことだけです。
PhoneGap 3.1 は、InAppBrowser というプラグインを介して実行できると述べています。インストールして、config.xml に次の行を追加しました。
<plugin name="InAppBrowser" value="CDVInAppBrowser" />
<feature name="InAppBrowser">
<param name="ios-package" value="CDVInAppBrowser" />
</feature>
<access origin="*"/>
次に、Webページを開く必要があるリンクをページに追加しました:-
<a class="linkexternal" href="#">asdf</a>
次のJSで
<script type="text/javascript">
$(document).on('click', ".linkexternal", function (e) {
e.preventDefault();
//window.open('http://apache.org', '_blank', 'location=no');
window.open('http://apache.org', '_system', 'location=yes');
});
</script>
ページは開きますが、コントロールなしで画面全体に広がるだけです。古いバージョンの PhoneGap では、最後に「完了」と表示されたので、完了ボタンを押すとアプリに戻っていました。しかし、ここでは、ページ全体が全画面で表示され、アプリに戻る唯一の方法はアプリを閉じることです。
完了ボタンを表示するか、外部ブラウザでリンクを開くだけです。
追加情報
テストとして、これら 3 つの異なるリンクを開こうとしました。「_system」、「_blank」、「_self」を使用
<a href="#" onclick="var ref = window.open('http://google.com', '_system');">Google (System Browser)</a><br /><br />
<a href="#" onclick="var ref = window.open('http://google.com', '_blank');">Google (InAppBrowser)</a><br /><br />
<a href="#" onclick="var ref = window.open('http://google.com', '_self');">Google (Webview)</a>
「_system」、「_blank」、「_self」を使用してこれら 3 つのリンクをテストすると、「_self」のみがアプリの全画面表示として開き、残りは次のエラーが表示されます。
_system
リンクはこのエラーを与えます:-
2013-11-12 11:44:58.878 XYZ[2063:60b] Failed to load webpage with error: The operation couldn’t be completed. (NSURLErrorDomain error -999.)
_blank
リンクはこのエラーを与えます:-
2013-11-12 11:46:13.997 XYZ[2063:60b] CDVWebViewDelegate: Navigation started when state=1
2013-11-12 11:46:13.997 XYZ[2063:60b] Failed to load webpage with error: CDVWebViewDelegate: Navigation started when state=1
2013-11-12 11:46:13.999 XYZ[2063:60b] Resetting plugins due to page load.
2013-11-12 11:46:14.009 XYZ[2063:60b] Failed to load webpage with error: The operation couldn’t be completed. (NSURLErrorDomain error -999.)