(Это приложение для телефонной связи, для iOS и Android, использующее JS / HTML / CSS)
Я открываю ссылки, которые хочу использовать в приложении, используя селектор классов 'external'. Итак, у меня есть следующий код для открытия этих ссылок:
$("body").on("click", "a.external", function(){
var thisHref = $(this).attr("href");
appBrowser = cordova.InAppBrowser.open(thisHref, '_blank', 'location=no, zoom=no');
appBrowser.addEventListener('loadstart', function(event) {
if (event.url == "XXXXX") { appBrowser.close(); }
});
На самих внешних URL-адресах я установил ссылки, ссылающиеся на «XXXXX», которые должны закрывать inAppBrowser. Все работает на эмуляторе Phonegap Desktop на все 100%, но когда я устанавливаю файлы .apk или .ipa на реальные устройства, loadstart не запускается, КРОМЕ первого щелчка внутри приложения.
Это наводит меня на мысль, что это проблема с областью действия, так как похоже, что слушатель подхватывает только когда loadstart происходит сразу после нажатия на a.external. (P.S. appBrowser определен глобально [var appBrowser; вверху]).
Я не совсем уверен, как расположить код так, чтобы слушатель подключался и продолжал работать все время. Я попытался разместить addEventListener самостоятельно, внутри функции deviceready или целиком внутри deviceready (ни одна из них не работает).
Так что я надеюсь, что здесь чего-то не хватает, и это действительно проблема масштаба. Хотя странно, что он работает как на эмуляторе, но только при первом нажатии на самих устройствах.
Спасибо!