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

Web app opens link in Safari instead of inside the existing view

本文关键字:链接 视图 应用程序 Web Safari      更新时间:2023-09-26

我已经在主页上添加了一个网络应用程序。

当我在快捷方式中打开应用程序时,它的外观与其他本机一致。 例如,典型的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,而不是在原始视图中打开。

如何使跟随链接操作保留在应用程序的视图中?

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

鲍尔安装 --保存 iOS 网络链接

附言我修改的脚本用于防止在 Safari 中以standalone模式打开链接:

(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));