我有一个多页面网站,旨在作为 iPhone 上的网络应用程序运行。
它具有通常的:
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<link rel="apple-touch-startup-image" href="/images/startup.png" />
该网站不使用 Sencha 或 Javascript 在页面之间导航,仅使用标准锚链接和页面重新加载(我知道网络应用程序的标准方法是使用类似 Sencha 的界面)。
从 iPhone 主屏幕启动时,它工作得非常好,并且与通过 Safari 查看时的工作方式相同。
然而,当会议中途接听电话时,似乎出现了一个问题。
通话完成后,iPhone(本例中为版本 4)将恢复到网络应用程序,但不会恢复之前查看的页面,而是重新加载主屏幕(与启动网络应用程序时加载的页面相同) )
当在 Safari 中查看站点并接受呼叫时,它不会执行此操作并保留 url 和当前会话值。
这是网络应用程序中的已知问题吗?有解决方法吗?
(我的一个想法是在本地 SQLite 数据库中维护会话和 url 值,但我不确定这是否是最好的方法)
诀窍是这样做:
// Start or resume session
session_start();
// Extend cookie life time by an amount of your liking
$cookieLifetime = 365 * 24 * 60 * 60; // A year in seconds
setcookie(session_name(),session_id(),time()+$cookieLifetime);
我测试了它在 iOS 4.2.1、5.1.1、6.0 和 6.1 上的工作情况。关闭并重新启动设备后,会话甚至会恢复。
有关此策略的更详细讨论,您可以查看我对此问题的回答:在 iPhone 上的 Web 应用程序中维护 PHP 会话 https://stackoverflow.com/questions/9998900/maintain-php-session-in-web-app-on-iphone/14594908#14594908
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)