代码之家  ›  专栏  ›  技术社区  ›  jafarbtech

检查应用浏览器是否打开或关闭

  •  2
  • jafarbtech  · 技术社区  · 7 年前

    在我的cordova应用程序中,我正在打开(使用 InAppBrowser

    var ref = cordova.InAppBrowser.open('http://apache.org', '_blank', 'location=yes');
    ref.close();
    

    现在我想检查iApp浏览器是否在js中关闭(不是我想检查浏览器本身是否打开或关闭的特定URL) ref.isClosed() . 但InAppBrowser并没有促进这样的功能。有办法找到它吗?

    2 回复  |  直到 7 年前
        1
  •  4
  •   DaveAlden    7 年前

    您可以只创建一个简单的包装器来跟踪它是打开的还是关闭的,例如:

    var iab_controller = (function(){
        var ref, isOpen = false;
    
        return {
            open: function(url){
                ref = cordova.InAppBrowser.open(url, '_blank', 'location=yes');
                isOpen = true;
                return ref;
            },
            close: function(){
                if(isOpen){
                    ref.close();
                    ref = null;
                    isOpen = false;
                }
            },
            isOpen: function(){
                return isOpen;
            },
            isClosed: function(){
                return !isOpen;
            }
        };
    
    })();
    
    console.log("isOpen: " + iab_controller.isOpen())
    console.log("isClosed: " + iab_controller.isClosed())
    
    iab_controller.open('http://apache.org');
    
    console.log("isOpen: " + iab_controller.isOpen())
    console.log("isClosed: " + iab_controller.isClosed())
    
    iab_controller.close();
    
    console.log("isOpen: " + iab_controller.isOpen())
    console.log("isClosed: " + iab_controller.isClosed())
    
        2
  •  3
  •   user12121234    7 年前
    var browserRef = cordova.InAppBrowser.open('http://apache.org', '_blank', 'location=yes');
    var isOpen = true;
    
    browserRef.addEventListener('exit', function(event) {
      console.log('exit: event fires when the InAppBrowser window is closed.');
      isOpen = false;
    });
    

    为InAppBrowser中的退出事件添加侦听器。这将允许您执行逻辑或设置变量来管理状态。

    https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-inappbrowser/#inappbrowseraddeventlistener