iPhone Web App禁用缓存

问题描述 投票:6回答:3

我用PHP构建了一个iPhone webapp。主要(也是唯一)页面包括apple-mobile-web-app-capable和apple-touch-fullscreen元标记,以便一旦添加到主屏幕就可以全屏运行。但是,似乎每次我从主屏幕启动应用程序时,都会使用页面的缓存版本而不是刷新页面(当然,我需要在启动时更新页面,并且不能在这里使用Ajax - 需要使用SSO phpCAS动态验证用户)。我没有使用任何清单文件,并尝试添加有关缓存的元标记,但没有成功。有人知道如何解决这个问题吗?

谢谢

javascript iphone safari web-applications mobile-safari
3个回答
3
投票

你试过哪些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')  }
}

因此,如果页面在浏览器中,它可以提供有关保存到主屏幕的说明,如果从主屏幕运行它将加载真实页面。


2
投票

我知道当你包含一个清单文件时,主页面会自动缓存,但我不认为它只是在使用... web-app-capable时才会发生。您是否尝试过使用缓存清单文件并在“网络:”下列出您的页面,以明确地将其从此缓存方法中排除?如果不是这个,则必须使用标题和元信息。


-1
投票

您必须使用HTML5缓存清单,如下所示:

<!DOCTYPE HTML>
<html manifest="cache.manifest">
<head>

请在这里阅读Apple关于HTML5 Offline Application Cache的文档

© www.soinside.com 2019 - 2024. All rights reserved.