【问题标题】:iPhone Safari Web App opens links in new window when using javascript:history.go(-1)使用 javascript:history.go(-1) 时 iPhone Safari Web App 在新窗口中打开链接
【发布时间】:2012-02-11 15:38:45
【问题描述】:

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

我找到了这个帖子iPhone Safari Web App opens links in new window 这对我帮助很大。我使用了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 应用程序中打开。

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

【问题讨论】:

  • 您在为您的应用使用UIWebView 吗?
  • @sergio 这只是一个在 Safari 中运行的网站,您可以将其添加到主屏幕。所以不,我猜不是。

标签: javascript iphone iphone-standalone-web-app


【解决方案1】:

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

“应用模式”也称为“单机模式”。

【讨论】:

    猜你喜欢
    • 2011-02-23
    • 2020-04-22
    • 2016-01-05
    • 1970-01-01
    • 2015-09-26
    • 2015-02-09
    • 2012-04-11
    • 2013-12-04
    • 1970-01-01
    相关资源
    最近更新 更多