Не удается удалить файл из кэша в Safari - PullRequest
0 голосов
/ 22 мая 2018

В приложении Angular 6 я использую Cache API , чтобы иметь возможность хранить и удалять файлы MP3.

В Safari при попытке удалить файл, который он не 'я получаю сообщение об ошибке «Превышена квота» (в Chrome он работает хорошо).

Я создал Пример Angular Firebase App , чтобы вы могли увидеть проблему.

Пример хранилища кода приложения

Действия по воспроизведению проблемы:

  1. Откройте Safari (для мобильных устройств или на компьютере Mac))
  2. Нажмите кнопку «Сохранить файл»
  3. Нажмите «Удалить файл» (файл должен быть удален, но это не так)
  4. Нажмите «Сохранить файл» еще рази вы получите сообщение «Превышена квота».

Может ли кто-нибудь помочь мне понять, что не так с моим кодом?

Метод, который я вызываю для удаления файла: removeFile ()

app.component.ts

import { Component, OnInit } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {

  // Omitted ...

  saveFile() {
    this.resetValues();  
    caches.open(this.id).then((cache) => {
      console.log("open complete", cache);
      return fetch(this.url).then((response) => {
        console.log("fetch complete", response);
        return cache.put(this.url, response).then((data) => {
          console.log("cache complete", data)
          this.status = 'File saved';
        });
      })
    }).catch((error: Error) => {
      this.errorMessage = error.message;
      console.error('Error caching file!', error);
    });
  }

  removeFile() {
    this.resetValues();
    caches.delete(this.id).then((cacheDeleted) => {
      console.log("File removed from cache:", cacheDeleted);
      this.status = 'File removed';
    }).catch((error: Error) => {
      this.errorMessage = error.message;
      console.error('Error removing file from cache :(', error);
    });
  }

}

package.json

{
  // Omitted ...
  "dependencies": {
    "@angular/animations": "^6.0.0",
    "@angular/common": "^6.0.0",
    "@angular/compiler": "^6.0.0",
    "@angular/core": "^6.0.0",
    "@angular/forms": "^6.0.0",
    "@angular/http": "^6.0.0",
    "@angular/platform-browser": "^6.0.0",
    "@angular/platform-browser-dynamic": "^6.0.0",
    "@angular/router": "^6.0.0",
    "core-js": "^2.5.4",
    "rxjs": "^6.0.0",
    "zone.js": "^0.8.26"
  },
  "devDependencies": {
    "@angular/compiler-cli": "^6.0.0",
    "@angular-devkit/build-angular": "~0.6.1",
    "typescript": "~2.7.2",
    "@angular/cli": "~6.0.1",
    "@angular/language-service": "^6.0.0",
    // Omitted ...
  }
}
...