Я не разработчик Android, но WebStorage#deleteAllData()
похоже, что он выполнит то, что вы хотите. Если это не так, это звучит как ошибка, и я бы рекомендовал вам следить за любым механизмом, используемым для ошибок платформы Android.
В качестве альтернативы, и поскольку я веб-разработчик, вот подход JavaScript к прояснению ситуации. Обратите внимание, что то, что вы называете «кэш сервис-воркеров», на самом деле не ограничивается сервис-воркерами; Cache Storage API доступен как в рабочей глобальной области, так и как window.caches
, поэтому он будет использоваться непосредственно из контекста веб-страниц. Таким образом, вы можете запустить код, удаляющий все кеши, непосредственно из контекста выполнения веб-страницы, не прыгая через обручи, чтобы вызвать сервис-воркера:
caches.keys()
.then(cacheNames => Promise.all(cacheNames.map(cacheName => caches.delete(cacheName))))
.then(() => console.log('Everything was deleted!'))
.catch(error => console.warn('Something went wrong!', error));
В отличие от вызова WebStorage#deleteAllData()
, этот JavaScript просто очистит Cache Storage API, поэтому обычный HTTP-кеш, а также файлы cookie и другое хранилище для конкретных сайтов останутся.
29.08.2016