Открытие ссылок на внешние сайты в системном браузере (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 слушатель событий почему-то становится неэффективным после первого использования.

Как я могу убедиться, что системный браузер открыт для внешних ссылок?

0 ответов

Другие вопросы по тегам