在我的phonegap应用程序退出后,iOS是否会清除缓存?

时间:2011-11-30 10:50:27

标签: android ios cordova android-browser

我正在为Android和iOS平台开发应用程序。 我的应用程序也有很多图像,它们都有外部src。
当连接到那里时,图像会正确显示。 现在,当我关闭应用程序,进入飞行模式并启动应用程序时,图像将显示在Android中的浏览器缓存中,但不会显示在iOS中?在关闭phonegap应用程序并且Android没有关闭后,iOS清除浏览器缓存是什么?或者我在这里错过了什么?

3 个答案:

答案 0 :(得分:1)

this question中有一些相关信息。 (我假设您正在使用UIWebView。)但是,在编写问题时,他们遇到了iPhone的URL缓存系统中的一些错误 - 我不知道这些错误是否已被修复。 / p>

答案 1 :(得分:1)

如果您正在谈论像这样获得的缓存目录

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cachePath = [paths objectAtIndex:0];

它曾经保持原样但可以从iOS 5开始清除,请参阅this related post。 Apple正在iOS的测试版中修复此问题(提供永久缓存文件的可能性,这些文件未同步到iTunes或iCloud)。

答案 2 :(得分:1)

您需要在repo HTML上创建manifest.php并加载phoneGap应用中的主HTML文件,这是在缓存中查看Web应用程序以及在服务离线期间的方式。

是php文件的代码:

<?php
header('Content-Type: text/cache-manifest');
echo "CACHE MANIFEST\n";
$hashes = "";
$dir = new RecursiveDirectoryIterator(".");
foreach(new RecursiveIteratorIterator($dir) as $file) {
    if ($file->IsFile() && $file != "./manifest.php" && substr($file->getFilename(), 0, 1) != ".") {
        echo $file . "\n";
        $hashes.= md5_file($file);
    }
}
echo "# Hash: " . md5($hashes) . "\n"; ?>

这是顶部html文件中的代码需要,以便在页面中开始代码:

<html manifest="manifest.php">

享受。