diff --git a/README.md b/README.md index 50e613c..2901ead 100644 --- a/README.md +++ b/README.md @@ -8,13 +8,13 @@ composer require pixelspin/silverstripe-progressivewebapp ``` ## Usage -Install the module, run dev/build and fill in the settings in the siteconfig -Create a symlink at the root of you website to vendor/pixelspin/silverstripe-progressivewebapp/service-worker.js -Place the link to the manifest file () in the head of your pages and add the color meta data as well () -Include the js (Requirements::javascript('pixelspin/silverstripe-progressivewebapp:resources/js/progressivewebapp.js');) - -## Todo -- Add "add to homescreen" prompt -- Add offline support -- Create an you are offline page -- Improve documentation +- Install the module, run dev/build and fill in the settings in the siteconfig +- Include the required js to register the service worker +``` +Requirements::javascript('pixelspin/silverstripe-progressivewebapp:resources/js/progressivewebapp.js'); +``` +- Add the following tags to the head of your website +``` + + +``` \ No newline at end of file diff --git a/_config/config.yml b/_config/config.yml index 00b9baf..a93d01e 100644 --- a/_config/config.yml +++ b/_config/config.yml @@ -4,7 +4,8 @@ Name: progressivewebapp SilverStripe\Control\Director: rules: - 'manifest.json': 'Pixelspin\ProgressiveWebApp\Controllers\ProgressiveWebAppController' + 'manifest.json': 'Pixelspin\ProgressiveWebApp\Controllers\ManifestController' + 'service-worker.js': 'Pixelspin\ProgressiveWebApp\Controllers\ServiceWorkerController' SilverStripe\SiteConfig\SiteConfig: extensions: diff --git a/resources/js/progressivewebapp.js b/resources/js/progressivewebapp.js index 905cd15..ed35d75 100644 --- a/resources/js/progressivewebapp.js +++ b/resources/js/progressivewebapp.js @@ -1,3 +1,6 @@ if ('serviceWorker' in navigator) { - navigator.serviceWorker.register('/service-worker.js'); + var baseHref = (document.getElementsByTagName('base')[0] || {}).href; + if(baseHref){ + navigator.serviceWorker.register(baseHref + 'service-worker.js'); + } } diff --git a/service-worker.js b/service-worker.js deleted file mode 100644 index 0cf7dd8..0000000 --- a/service-worker.js +++ /dev/null @@ -1 +0,0 @@ -self.addEventListener('fetch', (event) => {}); diff --git a/src/Controllers/ProgressiveWebAppController.php b/src/Controllers/ManifestController.php similarity index 98% rename from src/Controllers/ProgressiveWebAppController.php rename to src/Controllers/ManifestController.php index c1cb6f4..27c469c 100644 --- a/src/Controllers/ProgressiveWebAppController.php +++ b/src/Controllers/ManifestController.php @@ -5,7 +5,7 @@ namespace Pixelspin\ProgressiveWebApp\Controllers; use SilverStripe\Control\Controller; use SilverStripe\SiteConfig\SiteConfig; -class ProgressiveWebAppController extends Controller { +class ManifestController extends Controller { /** * @var array diff --git a/src/Controllers/ServiceWorkerController.php b/src/Controllers/ServiceWorkerController.php new file mode 100644 index 0000000..ba2df9f --- /dev/null +++ b/src/Controllers/ServiceWorkerController.php @@ -0,0 +1,26 @@ +getResponse()->addHeader('Content-Type', 'application/javascript; charset="utf-8"'); + return $this->renderWith('ServiceWorker'); + } + +} diff --git a/templates/ServiceWorker.ss b/templates/ServiceWorker.ss new file mode 100644 index 0000000..8a5c8fc --- /dev/null +++ b/templates/ServiceWorker.ss @@ -0,0 +1 @@ +self.addEventListener('fetch', (event) => {}); \ No newline at end of file