我正在尝试在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应用程序。
有人可以查看代码,看看是否有解决此问题的方法?
答案 0 :(得分:0)
不幸的是,如果网络应用程序正在“应用程序模式”中使用,它是从主页访问的,并且没有默认的Apple导航栏,那么JavaScript历史记录api将无效。您必须使用“直接链接”并链接到实际页面。您所拥有的脚本就是这样,当有人在“应用模式”中点击您网站上的链接而不是“外部”网站时,iOS仍会以“应用模式”打开该链接。
“app mode”也称为“独立模式”。