21

我已经看到了一些其他关于 iOS 6 的新行为的帖子,其中网站保存到主屏幕/从主屏幕启动。在 iOS 5(及更早版本)上,我们能够为应用内的后退按钮使用 Javascript History 功能。但是,在 iOS 6 中,如果您只访问过站点中的一页,它就可以工作。但是,如果您访问过多个页面,则会引发页面未找到错误。它在 Safari 中运行良好(不是从主屏幕),如果我删除<meta name="apple-mobile-web-app-capable" content="yes" />标签它就可以工作。但后来我得到了我试图避免的丑陋的浏览器 chrome。

我看过类似的帖子,关于 iOS 6 的更改不再与 Safari 共享数据,但我希望有人遇到过类似的问题,即 iOS 6 中应用程序的主屏幕版本存储/使用的历史信息。

我们正在使用这个调用:<a href="javascript:history.back();" class="back"></a>

同样,它在 Safari 中运行良好,在所有旧操作系统中都运行良好。但是当用户点击的页面超过两个时,它会在主屏幕上的 iOS 6 上失败。

4

3 回答 3

2

我的理解是,如果您添加apple-mobile-web-app-capable标签 - 它会将已添加书签的页面缓存到主屏幕。

启动书签后的任何后续请求都将导致 safari 浏览器启动 url(添加了丑陋的 chrome)。

您可以进行一些基本的错误检查 - 如果有任何历史记录:

function GoBack() {
   if(history.length) {
       history.back();
       return false;
   }
   return true; //follow the regular link
}

你真的应该给你的网址一个适当的 href 值:

<a href="http://your_standard_url" class="back" onClick="GoBack()"></a>
于 2013-03-19T12:47:50.207 回答
1

Have your tried

onclick="history.go(-1)"
  • This simple command should work.
于 2013-03-26T21:50:13.647 回答
0

尝试其中之一

window.history.pushState

http://thelink.is/history-api-ios-bug

或者

window.history.pushState(data, title, 'a/new/url#');

或者

window.history.pushState(数据,标题,'a/new/url');

window.location.hash = '新';

于 2013-04-06T09:15:11.507 回答