【问题标题】:does the iOS clear the cache after my phonegap app exits?我的 phonegap 应用程序退出后,iOS 会清除缓存吗?
【发布时间】:2023-04-05 02:46:01
【问题描述】:

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

【问题讨论】:

    标签: android ios cordova android-browser


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      如果你说的是这样获取的缓存目录

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

      它曾经完好无损,但从 iOS 5 开始可以清除,请参阅this related post。 Apple 正在 iOS 的 beta 版本中解决这个问题(提供了不同步到 iTunes 或 iCloud 的永久缓存文件的可能性)。

      【讨论】:

        【解决方案3】:

        您需要在您的 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">
        

        享受吧。

        【讨论】:

          猜你喜欢
          • 2012-06-14
          • 1970-01-01
          • 2013-10-27
          • 1970-01-01
          • 2017-10-01
          • 2012-12-14
          • 2019-02-03
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多