phonegap открыть ссылку в браузере
<a target="_blank" data-rel="external" href="http://www.kidzout.com">www.kidzout.com</a>
привет эксперты я использую phonegap 2.9.0 и я использую приведенный выше код, чтобы открыть ссылку в браузере, но он открывает его в том же приложении...... как открыть браузер Safari?
Он открывает веб-сайт в том же приложении, а затем я не могу вернуться в приложение, поэтому мне нужно удалить приложение и установить его снова.....
11 ответов
как полагают в аналогичный вопрос использовать JavaScript для вызова window.open
С
<a onclick="navigator.app.loadUrl('https://google.com/', { openExternal:true });">Link</a>
работает для меня с android & PG 3.0
Как ответили в других сообщениях, у вас есть два разных варианта для разных платформ. Вот что я делаю:--3-->
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 и плагинов устройств
есть 2 разных способа открыть URL в android и iphone.
для IOS используйте следующий код.
window.open("http://google.com", '_system');
и для ОС Android используйте следующий код.
navigator.app.loadUrl("http://google.com", {openExternal : true});
наконец этот пост помогает мне на 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 в порядке.
Via Cordova 3.3.0.
ни один из этих ответов не является достаточно явным, чтобы получить внешние ссылки для открытия в каждой платформе. Согласно inappbrowser в документы:
установить
cordova plugin add cordova-plugin-inappbrowser
окне перезаписи.открыть (необязательно, но рекомендуется для простоты)
window.open = cordova.InAppBrowser.open;
если вы не перезаписать window.open
, вы будете использовать уроженца window.open
функция, и не может рассчитывать получить такие же результаты межплатформенный.
используйте его, чтобы открыть ссылки в браузере по умолчанию
window.open(your_href_value, '_system');
обратите внимание, что цель для inAppBrowser (это то, что имя плагина предполагает, что оно должно использоваться) -'_blank'
, вместо '_system'
.
без вышеуказанных шагов я не смог получить ссылки для открытия в кросс-платформенном приложении браузера по умолчанию.
дополнительно
вот пример (live) обработчика щелчка для ссылки:
document.addEventListener('click', function (e) {
if (e.target.tagName === 'A' &&
e.target.href.match(/^https?:\/\//)) {
e.preventDefault();
window.open(e.target.href, '_system');
}
});
Если у вас есть jQuery, вы можете перехватить щелчок по ссылке следующим образом:
$(document).on('click', 'a', function (event) {
event.preventDefault();
window.open($(this).attr('href'), '_system');
return false;
});
таким образом, вам не нужно изменять ссылки в html, что может сэкономить много времени. Я настроил это с помощью делегата, поэтому вы видите, что он привязан к объекту документа с тегом " 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>
Я использую сборку PhoneGap (v3.4.0), с акцентом на iOS, и мне нужно было иметь эту запись в моей конфигурации.xml для PhoneGap для распознавания подключаемого модуля InAppBrowser.
<gap:plugin name="org.apache.cordova.inappbrowser" />
после этого, используя window.open (url, target) должен работать так, как ожидалось, как задокументировано здесь.
Я также столкнулся с проблемой, что ссылка не открывалась в браузере вот мое исправление с шагами:
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
файл и вставьте его в .
Затем сделайте ссылку на это в .
<script src="cordova.js"></script>
это решение будет работать для обоих окружающая среда android и iPhone.