1

我正在为 Android 和 iOS 平台开发一个应用程序。我的应用程序也有许多具有外部 src 的图像。
当连接在那里时,图像会正确显示。现在,当我关闭应用程序,进入飞行模式并启动应用程序时,图像会从 Android 的浏览器缓存中显示,但不会在 iOS 中显示?那么在phonegap应用关闭后iOS会清除浏览器缓存而Android不会呢?还是我在这里遗漏了什么?

4

3 回答 3

1

在这个问题中有一些关于它的信息。(我假设您使用的是 UIWebView。)但是,在编写该问题时,他们在 iPhone 的 URL 缓存系统中遇到了一些错误——我不知道这些错误是否已经修复。

于 2011-11-30T11:17:41.940 回答
1

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

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

它曾经完好无损,但自 iOS 5 起可以清除,请参阅此相关帖子。Apple 正在 iOS 的 beta 版本中解决此问题(提供了未同步到 iTunes 或 iCloud 的永久缓存文件的可能性)。

于 2011-11-30T11:19:41.080 回答
1

您需要在您的 repo HTML 上创建一个 manifest.php 并在您的 phoneGap 应用程序中加载主 HTML 文件,这是在缓存中查看 Web 应用程序以及在设备离线期间查看 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">

享受。

于 2011-11-30T11:44:50.113 回答