我正在开发一个 HTML5 应用程序,它应该能够在许多不同的环境中运行——大多数桌面网络浏览器、移动网络浏览器,以及作为保存到 iOS 设备的应用程序。
问题是它使用 target="_blank" 打开多个单独的页面,主要用于导出或打印数据,这在 iOS Web 应用程序中会吹走当前窗口并使用户无法返回。一个简单的返回链接不是解决方案,因为主页中的状态比可以合理传递的要多。iOS 移动应用程序有没有办法在移动 Safari 中将其页面作为新标签打开?
我正在开发一个 HTML5 应用程序,它应该能够在许多不同的环境中运行——大多数桌面网络浏览器、移动网络浏览器,以及作为保存到 iOS 设备的应用程序。
问题是它使用 target="_blank" 打开多个单独的页面,主要用于导出或打印数据,这在 iOS Web 应用程序中会吹走当前窗口并使用户无法返回。一个简单的返回链接不是解决方案,因为主页中的状态比可以合理传递的要多。iOS 移动应用程序有没有办法在移动 Safari 中将其页面作为新标签打开?
如果您正在谈论将 Web 应用程序添加到主屏幕并以独立模式运行它,请使用:
<meta name="apple-mobile-web-app-capable" content="yes" />
那么答案是否定的,很遗憾。我刚刚完成了需要像这样工作的项目,在新“选项卡”中打开链接的唯一方法是使用 HTML/CSS/JS 创建自己的选项卡并在 iframe 中打开这些链接。
您还需要注意X-Frame-Options: Deny阻止网站在 iframe 中加载。例如 google、facebook... 不能再在 iframe 中打开,因为他们想保护自己免受Clickjacking的侵害。
最后,我最终使我的应用程序 100% 基于 javascript,并在 index.html 页面上完成了所有操作。当我需要来自服务器端的东西时,我还做了一些 AJAX 请求……而且效果很好。
如果您使用的是 JQuery,请参阅:通过 ajax 处理导出材料的下载。