保持独立应用程序中的链接不在Safari中打开,指定允许的主机

时间:2015-05-26 04:19:07

标签: javascript ios mobile-safari

人们在寻找代码以保持独立应用中的链接不会在iPhone和iPad上的Safari中打开时,有很多问题。但是,我已经为此工作了代码:

if(("standalone" in window.navigator) && window.navigator.standalone){
    var noddy, remotes = false;
        document.addEventListener('click', function(event) {
            noddy = event.target;
                while(noddy.nodeName !== "A" && noddy.nodeName !== "HTML") {
                    noddy = noddy.parentNode;
                }

                if('href' in noddy && noddy.href.indexOf('http') !== -1 && (noddy.href.indexOf(document.location.host) !== -1 || remotes)){
                    event.preventDefault();
                    document.location.href = noddy.href;
                }
},false);
}

此代码保持在Safari中打开的同一主机名上的链接,它们按照需要以全屏独立模式打开。外部链接和带有_blank目标的链接仍然可以在Safari中打开。

但是,如果链接指向我们网站上的其他子域,则这些链接仍会在Safari中打开。我正试图找到一种方法为这段代码提供“白名单”,以便这些主机名在独立应用模式下打开,而不是触发Safari。

我不太了解这段代码,知道在哪里进行更改以获得我想要的结果。

0 个答案:

没有答案