Как я могу закрыть inAppbrowser с помощью кнопки, не выполненной на верхней панели кнопки

Я не могу понять этого. Я открыл дочерний браузер в phonegap для приложения Android:

window.open( url, '_blank', 'location=yes' );

это не совсем правильно. Он открывает браузер, но кнопка «Готово» не закрывает браузер и не возвращает в основное приложение.

Я пробовал с другим решением, которое я нашел:

эквивалент window.close в Phonegap с InAppBrowser:

Этот код представляет собой приложение телефонной связи:

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

Эта кнопка создается на странице URL, которую я загрузил ранее:

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

Это не работает. Любая помощь?

Обновлять:

  • Открывается URL-адрес, такой как «file://...»
  • Если я установлю «местоположение = да» и нажму кнопку «Готово», он попытается закрыться, но снова появится.

person Brian    schedule 28.08.2013    source источник
comment
вы проверили значение URL? т.е. ref.addEventListener('loadstop', function(event) { alert(event.url); });   -  person Arjun T Raj    schedule 29.08.2013


Ответы (1)


Я заставил это работать. Мой код похож, но вот что я сделал по-другому: я использовал loadstart вместо loadtop. Я также удалил события.

function iabWindowOpen(url) {
    //May need to encodeURI on iOS so far working fine on android
    g_iabRef = window.open(url, "_blank", "location=yes,closebuttoncaption=Cancel");
    g_iabRef.addEventListener('loadstart', iabLoadStart);
    g_iabRef.addEventListener('loaderror', iabError);
    g_iabRef.addEventListener('exit', iabExit);
}


function iabLoadStart(event){
    var url = event.url;
    LOG ('iabLoadStart - ' + url);
    var iOut = url.indexOf("CloseIAB"); //or whatever you are looking for in your url
    if(iOut >= 0){
         g_iabRef.removeEventListener('loadstart', iabLoadStart);
         g_iabRef.removeEventListener('loaderror', iabError);
         g_iabRef.removeEventListener('exit', iabExit);
         g_iabRef.close();
         handleOpenURL(url); //do what you want when you get back
     }
}
person Leo    schedule 10.09.2013