Skip to content

Commit e9f5afa

Browse files
committed
Added service worker that caches pages and allows users to view them even when offline
1 parent 9e2f7bd commit e9f5afa

File tree

7 files changed

+109
-3
lines changed

7 files changed

+109
-3
lines changed

app/app/Http/Controllers/PWAController.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
<?php namespace App\Http\Controllers;
2-
32
use Illuminate\Routing\Controller;
4-
53
class PWAController extends Controller
64
{
75
public function manifest()
@@ -34,4 +32,4 @@ public function manifest()
3432
]
3533
]);
3634
}
37-
}
35+
}

app/package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,8 @@
1515
"lodash": "^4.16.2",
1616
"vue": "^2.0.1",
1717
"vue-resource": "^1.0.3"
18+
},
19+
"dependencies": {
20+
"firebase": "^5.3.0"
1821
}
1922
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
importScripts('https://www.gstatic.com/firebasejs/4.8.1/firebase-app.js');
2+
importScripts('https://www.gstatic.com/firebasejs/4.8.1/firebase-messaging.js');
3+
firebase.initializeApp({
4+
messagingSenderId: "your messagingSenderId again"
5+
});
6+
const messaging = firebase.messaging();

app/public/js/push_notification.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import firebase from 'firebase';
2+
export const initializeFirebase = () => {
3+
firebase.initializeApp({
4+
messagingSenderId: "your messagingSenderId"
5+
});
6+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from firebase import firebase;
2+
3+
if ('serviceWorker' in navigator) {
4+
navigator.serviceWorker
5+
.register('./service-worker.js', { scope: './'})
6+
.then((registration)=> {
7+
firebase.messaging().useServiceWorker(registration);
8+
})
9+
.catch(function(err) {
10+
console.log("Service Worker Failed to Register", err);
11+
})
12+
}

app/public/service-worker.js

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
// Initialize Firebase
2+
var config = {
3+
apiKey: "AIzaSyBX6l4geba-CjXE_WlQwOX6pxCIrVl-tjk",
4+
authDomain: "wise-bongo-209220.firebaseapp.com",
5+
databaseURL: "https://wise-bongo-209220.firebaseio.com",
6+
projectId: "wise-bongo-209220",
7+
storageBucket: "wise-bongo-209220.appspot.com",
8+
messagingSenderId: "926874022337"
9+
};
10+
firebase.initializeApp(config);
11+
export const inicializarFirebase = () => {
12+
firebase.initializeApp({
13+
messagingSenderId: '926874022337'
14+
});
15+
navigator.serviceWorker
16+
.register('/my-sw.js')
17+
.then((registration) => {
18+
firebase.messaging().useServiceWorker(registration);
19+
});
20+
}
21+
22+
var cacheName = 'v1';
23+
// A list of local resources we always want to be cached.
24+
var cacheFiles = [
25+
'/',
26+
//php
27+
// 'app/public/index.php',
28+
//blade
29+
//'app/resources/views/pages/home.blade.php',
30+
//css
31+
//'app/public/css/index.min.css',
32+
//jquery
33+
//'app/public/css/jquery/jquery-ui.min.js',
34+
//'app/public/css/jquery/jquery-ui.js',
35+
//javascript files
36+
//'app/public/js/jquery-3.1.1.js',
37+
//'app/public/js/utils.js',
38+
//'home.js',
39+
//'app/public/js/hover_text.js',
40+
//'app/public/js/service_worker_script.js',
41+
//assets
42+
//'app/public/images/logo.svg',
43+
]
44+
self.addEventListener('install', function(e) {
45+
console.log("[ServiceWorker] Installed");
46+
try {
47+
e.waitUntil(
48+
caches.open(cacheName).then(function(cache) {
49+
console.log("[ServiceWorker] Caching cacheFiles");
50+
return cache.addAll(cacheFiles);
51+
})
52+
)
53+
} catch(e) {
54+
console.log(e);
55+
}
56+
})
57+
58+
self.addEventListener('activate', function(e) {
59+
console.log("[ServiceWorker] Activated");
60+
})
61+
62+
self.addEventListener('fetch',function(e) {
63+
//console.log("[ServiceWorker] Fetching", e.request.url);
64+
})

app/resources/views/pages/home.blade.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
<script src="/js/utils.js" type="text/javascript"></script>
55
<script src="/js/home.js" type="text/javascript"></script>
66
<script src="/js/hover_text.js" type="text/javascript"></script>
7+
<script src="/js/service_worker_script.js" type="text/javascript"></script>
8+
<script src="/js/push_notification.js" type="text/javascript"></script>
79
<script type="text/javascript">
810
var default_location = {
911
'latitude': {{ $default_location['latitude'] }},
@@ -13,6 +15,21 @@
1315
<script type="text/javascript" async defer
1416
src="//maps.googleapis.com/maps/api/js?key={{ $google_map_api_key }}&amp;callback=initMap">
1517
</script>
18+
19+
<script src="https://www.gstatic.com/firebasejs/5.3.0/firebase.js"></script>
20+
<script src="https://www.gstatic.com/firebasejs/5.3.0/firebase-messaging.js"></script>
21+
<script>
22+
// Initialize Firebase
23+
var config = {
24+
apiKey: "AIzaSyBX6l4geba-CjXE_WlQwOX6pxCIrVl-tjk",
25+
authDomain: "wise-bongo-209220.firebaseapp.com",
26+
databaseURL: "https://wise-bongo-209220.firebaseio.com",
27+
projectId: "wise-bongo-209220",
28+
storageBucket: "wise-bongo-209220.appspot.com",
29+
messagingSenderId: "926874022337"
30+
};
31+
firebase.initializeApp(config);
32+
</script>
1633
@stop
1734
@section('content')
1835
<div class="home-page">

0 commit comments

Comments
 (0)