Открытие ссылок на внешние сайты в системном браузере (Apache Cordova / PhoneGap)
Я поместил свое адаптивное веб-приложение в приложение Apache Cordova. То есть в onDeviceReady
событие, я звоню
var ref = window.open('https://example.com', '_blank', 'location=no,zoom=no');
и это работает без нареканий. За исключением одного: ссылки на внешние веб-сайты. Я хочу, чтобы они открывались в Android (системном) браузере, а не в InAppBrowser. Для этого я использую следующее в onDeviceReady
событие:
// handle external links
ref.addEventListener('loadstart', function(e) {
var url = e.url;
if(url.substring(0,19)!=='https://example.com') {
window.open(url, "_system", 'location=yes');
}
});
Что происходит с этим кодом, так это то, что когда пользователь нажимает на ссылку на внешний сайт, появляется системный браузер и загружается внешний сайт. Однако inAppBrowser также загружает внешний сайт (и e.preventDefault();
не мешает этому случиться). Кроме того, все последующие нажатия на ссылки на внешние сайты открываются не в системном браузере, а в inAppBrowser. Итак loadStart
слушатель событий почему-то становится неэффективным после первого использования.
Как я могу убедиться, что системный браузер открыт для внешних ссылок?