<a target="_blank" data-rel="external" href="http://www.kidzout.com">www.kidzout.com</a>
ちょっと専門家私はphonegap 2.9.0を使用しています.ブラウザでリンクを開くために上記のコードを使用していますが、同じアプリで開きます....サファリブラウザを開く方法は?
同じアプリでウェブサイトを開くと、アプリに戻ることができないので、アプリを削除して再度インストールする必要があります.....
他の投稿で回答されているように、プラットフォームごとに 2 つの異なるオプションがあります。私がすることは:
document.addEventListener('deviceready', onDeviceReady, false);
function onDeviceReady() {
// Mock device.platform property if not available
if (!window.device) {
window.device = { platform: 'Browser' };
}
handleExternalURLs();
}
function handleExternalURLs() {
// Handle click events for all external URLs
if (device.platform.toUpperCase() === 'ANDROID') {
$(document).on('click', 'a[href^="http"]', function (e) {
var url = $(this).attr('href');
navigator.app.loadUrl(url, { openExternal: true });
e.preventDefault();
});
}
else if (device.platform.toUpperCase() === 'IOS') {
$(document).on('click', 'a[href^="http"]', function (e) {
var url = $(this).attr('href');
window.open(url, '_system');
e.preventDefault();
});
}
else {
// Leave standard behaviour
}
}
ご覧のとおり、デバイス プラットフォームをチェックしており、それに応じて別の方法を使用しています。標準ブラウザの場合、標準の動作のままにします。今後、ソリューションは Android、iOS、およびブラウザーで正常に動作しますが、HTML ページは変更されないため、URL を標準のアンカーとして表すことができます。
<a href="http://stackoverflow.com">
このソリューションには、InAppBrowser およびデバイス プラグインが必要です
最後に、この投稿は iOS で役立ちます: http://www.excellentwebworld.com/phonegap-open-a-link-in-safari-or-external-browser/。
「CDVwebviewDelegate.m」ファイルを開き、「shouldStartLoadWithRequest」を検索してから、次のコードを関数の先頭に追加します。
if([[NSString stringWithFormat:@"%@",request.URL] rangeOfString:@"file"].location== NSNotFound) { [[UIApplication sharedApplication] openURL:[request URL]]; return NO; }
navigator.app.loadUrl("http://google.com", {openExternal : true});
Androidでの使用中はOKです。
Cordova 3.3.0 経由。
jQuery を使用している場合は、次のようにリンクのクリックをインターセプトできます。
$(document).on('click', 'a', function (event) {
event.preventDefault();
window.open($(this).attr('href'), '_system');
return false;
});
これにより、html 内のリンクを変更する必要がなくなり、時間を大幅に節約できます。私はデリゲートを使用してこれを設定しました。そのため、2 番目の引数として「a」タグを使用してドキュメント オブジェクトに関連付けられていることがわかります。このようにして、いつ追加されたかに関係なく、すべての「a」タグが処理されます。
もちろん、InAppBrowser プラグインをインストールする必要があります。
cordova plugin add org.apache.cordova.inappbrowser
window.open('http://www.kidzout.com', '_system');
inappbrowser プラグインがインストールされている場合にのみ機能します。インストールするには、ターミナルを使用して、プロジェクトの www フォルダーを参照し、次のように入力します。
phonegap plugin add org.apache.cordova.inappbrowser
また
cordova plugin add org.apache.cordova.inappbrowser
次に、リンクがブラウザで開きます。
Cordova 5.0 以降では、プラグイン InAppBrowser は Cordova プラグイン レジストリで名前が変更されているため、次を使用してインストールする必要があります。
cordova plugin add cordova-plugin-inappbrowser --save
次に使用します
<a href="#" onclick="window.open('http://www.kidzout.com', '_system');">www.kidzout.com</a>
また、ブラウザでリンクが開かないという問題にも直面しました。これは、手順を含む私の修正です。
1: この cordova プラグインをインストールします。
cordova plugin add cordova-plugin-inappbrowser
2: 次のように html に開くリンクを追加します。
<a href="#" onclick="window.open('https://www.google.com/', '_system', 'location=yes');" >Google</a>
3: これは、多くの問題に直面したため、最も重要なステップです:cordova.js
ファイルをダウンロードして、フォルダーに貼り付けwww
ます。次に、index.html
ファイル内でこれを参照します。
<script src="cordova.js"></script>
このソリューションは、Android と iPhone の両方の環境で機能します。