0

我正在尝试在 iPhone 独立网络应用程序中获取链接以在网络应用程序而不是 safari 中打开。

我发现这个线程iPhone Safari Web App 在新窗口 中打开链接对我有很大帮助。我使用了rmarscher的答案

<script>(function(a,b,c){if(c in b&&b[c]){var d,e=a.location,f=/^(a|html)$/i;a.addEventListener("click",function(a){d=a.target;while(!f.test(d.nodeName))d=d.parentNode;"href"in d&&(d.href.indexOf("http")||~d.href.indexOf(e.host))&&(a.preventDefault(),e.href=d.href)},!1)}})(document,window.navigator,"standalone")</script>

我遇到的问题是当我的应用程序使用带有 javascript:history.go(-1) 的链接时。如果我在单击 history.go(-1) 后单击一个链接,它将在 safari 而不是 Web 应用程序中打开。

有人可以看看代码,看看是否有解决这个问题的方法吗?

4

1 回答 1

0

不幸的是,如果 web 应用程序在“应用程序模式”下使用,它是从主页访问的,并且没有默认的 Apple 导航栏,那么 JavaScript 历史 API 将无法工作。您必须使用“直接链接”并链接到实际页面。您拥有的脚本正在制作它,因此当有人在“应用程序模式”下单击您网站上的链接而不是指向“外部”站点时,iOS 将仍然以“应用程序模式”打开链接。

“应用模式”也称为“独立模式”。

于 2012-04-03T23:04:12.237 回答