This example uses Webpack
& Webpack Offline Plugin
which uses Service Worker
and Application Cache
as a fallback.
The video is loaded via the (polyfilled) Fetch API
as an Array Buffer because storing blobs in IndexedDB is not supported in iOS. Since we can't assign video sources to Array Buffers, we first convert it to blob.
This is intended to be a bare bones example. For more a (much) more advanced offline first example, take a look at Pokedex.org.