我用PHP构建了一个iPhone webapp。主要(也是唯一)页面包括apple-mobile-web-app-capable和apple-touch-fullscreen元标记,以便一旦添加到主屏幕就可以全屏运行。但是,似乎每次我从主屏幕启动应用程序时,都会使用页面的缓存版本而不是刷新页面(当然,我需要在启动时更新页面,并且不能在这里使用Ajax - 需要使用SSO phpCAS动态验证用户)。我没有使用任何清单文件,并尝试添加有关缓存的元标记,但没有成功。有人知道如何解决这个问题吗?
谢谢
你试过哪些meta标签?
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
应该告诉Safari不要缓存,但我还没有尝试过。
您可以使用javascript从缓存页面加载“真实”启动页面,使用任何标准技术使URL唯一,例如添加随机数。
这甚至可能适用于主要的启动页面,但我对此表示怀疑。值得一试。
我建议缓存页面只有在跳板上才会加载新页面:
未经建议的建议:
window.onload = function () {
if (navigator.standalone) {
document.location.href = 'http://your.com/whatever.php?randomjunk=1234') }
}
因此,如果页面在浏览器中,它可以提供有关保存到主屏幕的说明,如果从主屏幕运行它将加载真实页面。
我知道当你包含一个清单文件时,主页面会自动缓存,但我不认为它只是在使用... web-app-capable时才会发生。您是否尝试过使用缓存清单文件并在“网络:”下列出您的页面,以明确地将其从此缓存方法中排除?如果不是这个,则必须使用标题和元信息。
您必须使用HTML5缓存清单,如下所示:
<!DOCTYPE HTML>
<html manifest="cache.manifest">
<head>
请在这里阅读Apple关于HTML5 Offline Application Cache的文档