Web应用程序在Safari中打开链接,而不是在现有视图内

时间:2015-01-14 11:22:35

标签: javascript google-chrome

我在主页上添加了一个网络应用。

当我以捷径打开应用程序时,它的外观与其他原生应用程序一致。例如典型的Safari标签栏消失了。网址栏是隐藏的。等

在主页面上,我有许多标记和指向同一应用程序中其他页面的链接。通常他们就是这样的

<a class="content" href="/myapp/16270001">
   <span class="name" style="word-wrap: break-word;">Test Link </span>

</a>

当我点击该链接时,它会直接进入Safari并打开http://myapp.com/myapp/16270001,而不是在原始视图中打开。

如何让关注链接操作保留在应用程序的视图中?

1 个答案:

答案 0 :(得分:0)

然后,您添加到主屏幕网页,它成为一个独立的应用程序。您可以通过navigator.standalone标志检查此状态是iOS。 尝试4岁github gist。我用它,它的工作原理。 您可以bower使用它:

  

bower install --save iosweblinks

P.S。我修改过的脚本可以防止在standalone模式下在Safari中打开链接:

(function (standalone) {

    if (!standalone) {
        return;
    }

    document.addEventListener('click', function (e) {
        var element = e.target,
            href = '';

        while (!/^(a|html)$/i.test(element.nodeName)) {
            element = element.parentNode;
        }

        if (element.getAttribute) {
            href = element.getAttribute('href');

            if ('' !== href && '#' !== href && null !== href && (!element.protocol || element.protocol !== 'tel:')) {
                e.preventDefault();
                window.location = element.href;
            }
        }
    }, false);

}(window.navigator.standalone));