16

Вопрос по android, cordova, javascript – эквивалент window.close в Phonegap с InAppBrowser

Я открываю новую страницу сwindow.open("apphelp.html", "_blank", "location=no"), так что он показывает мне новое окно с моей страницей. В конце этой страницы я хотел бы поставить "кнопка закрытия "Таким образом, пользователь может вернуться туда, ...

<span>Я пробовал href = &quot;JavaScript: history.go (-1); с переменной ref = window.open (encodeURI (url), &#39;_self &#39;,&#39;расположение = нет»); и он закрывает окно и возвращается к файлу индекса моего приложения, а не просто закрывается с того места, где я его открыл, это было бы лучше. Япосмотрим, найду ли я что-нибудь еще. Я прочитал, что с моим кодом вы сможете использовать ref.close (); Но у меня нетЯ не смог заставить его работать.</span>

от Claes Gustavsson

<span>Я думаю, что history.back () и history.go (-1) перезагрузить HTML, так что это будетдержи это штаты ..</span>

от Hola Soy Edu Feliz Navidad

<span>Нет но язавтра попробую еще раз.</span>

<span>Вы нашли решение своей проблемы, у меня возникли проблемы с тем же.</span>

от SimonSays

2 ответа

44

Я использую обходной путь ... Так как inAppBrowser может быть закрыт только с помощью кнопки назад или через JavaScript. Я показываю кнопку закрытия со стороны сервера, которая изменит текущий URL-адрес, а также событие 'loadstop» позволяя использовать метод .close (), таким образом, будет закрыт только дочерний браузер, ваше приложение останется в том же состоянии.

Например, мой сервер отображает веб-страницу с кнопкой закрытия, примерно так:

Close

в моем клиентском JavaScript (приложение PhoneGap):

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

Я преобразую для поддержки нескольких платформ, как это:

на третьей странице HTML и JS

closeBrowser(){
    if(history.length==1){
        window.open('mobile/close');
    }else{
        history.back();
    }
}



Close

в моем клиентском JavaScript (приложение PhoneGap):

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

спасибо первый этаж!

Похожие вопросы