Как закрыть phonegap/cordova InAppBrowser без использования кнопки закрытия

В моем приложении телефонной связи я открываю InAppBrowser внешнюю ссылку (она работает правильно) с помощью:

cordova.InAppBrowser.open(completeUrl, '_blank', 'location=yes');

Мне нужно закрыть открытую ссылку, когда пользователь совершает определенные действия. Я знаю, что могу закрыть его с помощью

var b = cordova.InAppBrowser.open(completeUrl, '_blank', 'location=yes');
b.Close();

но это на стороне моего приложения, мне нужно что-то подобное на стороне внешней ссылки. Например, возможно ли иметь ссылку на экземпляр на стороне внешней ссылки? Я думаю нет, да?

С «location = yes» у меня есть удобная кнопка закрытия вверху, так что это может быть решением, но я хотел бы закрыть ее, когда пользователь закончит использовать внешнюю ссылку, не используя собственную кнопку закрытия.

Является ли это возможным?

ОБНОВИТЬ Что я пробовал? 1) Из Эквивалент window.close в Phonegap с InAppBrowser Например, мой сервер отображает веб-страницу с кнопкой закрытия, что-то вроде этого:

<a href="/mobile/close">Close</a>

в моем javascript на стороне клиента (приложение Phonegap):

var ref = window.open(encodeURI(url), '_blank', options);
ref.addEventListener('loadstop', function(event) {        
    if (event.url.match("mobile/close")) {
        ref.close();
    }
});

2) Из https://stackoverflow.com/a/50047473/819161

var win=window.open( "myurl", "_blank");
win.addEventListener( "loadstop", function(){
       var loop = window.setInterval(function(){
           win.executeScript({
                   code: "window.shouldClose"
               },
               function(values){
                   if(values[0]){
                     win.close();
                     window.clearInterval(loop);
                   }
               }
           );
       },100);
   });

В вызываемом окне просто выполните:

window.shouldClose=true

Когда вы хотите закрыть его

3) Тупое окно.Закрыть() с вызываемой страницы

Ни одна из моих попыток не сработала.

3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
1
0
501
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы закрыть окно InAppBrowser само по себе, вы можете использовать прослушиватели событий loadstart или message. Обратите внимание, что для работы последнего требуется Cordova-plugin-inappbrowser 3.1.0-dev.

Проверьте подробности и полные примеры здесь: Как закрыть окно InAppBrowser в Cordova самостоятельно

Я рекомендую использовать метод loadstart и просто проверить загруженный URL, это работает со стабильным плагином.

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