Skip to content

Commit

Permalink
fix:FCM service worker
Browse files Browse the repository at this point in the history
  • Loading branch information
dev-Roshan-lab committed Jan 19, 2024
1 parent 2da7cbf commit e683191
Show file tree
Hide file tree
Showing 4 changed files with 100 additions and 30 deletions.
2 changes: 1 addition & 1 deletion lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
title: 'SRM Timetable by LiveWires_',
debugShowCheckedModeBanner: false,
theme: ThemeData(
colorScheme: ColorScheme.fromSwatch().copyWith(
Expand Down
77 changes: 71 additions & 6 deletions lib/pages/home.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/material.dart';

class Home extends StatefulWidget {
Expand All @@ -13,13 +14,77 @@ class _HomeState extends State<Home> {
// TODO: implement home UI

Map dummyData = {
"Day 1" : ["Class 1", "Class 2", "Class 3", "Class 4", "Class 5", "Class 6", "Class 7", "Class 8", "Class 9"],
"Day 2" : ["Class 1", "Class 2", "Class 3", "Class 4", "Class 5", "Class 6", "Class 7", "Class 8", "Class 9"],
"Day 3" : ["Class 1", "Class 2", "Class 3", "Class 4", "Class 5", "Class 6", "Class 7", "Class 8", "Class 9"],
"Day 4" : ["Class 1", "Class 2", "Class 3", "Class 4", "Class 5", "Class 6", "Class 7", "Class 8", "Class 9"],
"Day 5" : ["Class 1", "Class 2", "Class 3", "Class 4", "Class 5", "Class 6", "Class 7", "Class 8", "Class 9"],
"Day 1": [
"Class 1",
"Class 2",
"Class 3",
"Class 4",
"Class 5",
"Class 6",
"Class 7",
"Class 8",
"Class 9"
],
"Day 2": [
"Class 1",
"Class 2",
"Class 3",
"Class 4",
"Class 5",
"Class 6",
"Class 7",
"Class 8",
"Class 9"
],
"Day 3": [
"Class 1",
"Class 2",
"Class 3",
"Class 4",
"Class 5",
"Class 6",
"Class 7",
"Class 8",
"Class 9"
],
"Day 4": [
"Class 1",
"Class 2",
"Class 3",
"Class 4",
"Class 5",
"Class 6",
"Class 7",
"Class 8",
"Class 9"
],
"Day 5": [
"Class 1",
"Class 2",
"Class 3",
"Class 4",
"Class 5",
"Class 6",
"Class 7",
"Class 8",
"Class 9"
],
};


@override
void initState() {
// TODO: implement initState
super.initState();
FirebaseMessaging.onMessage.listen((RemoteMessage message) {
print('Got a message whilst in the foreground!');
print('Message data: ${message.data}');

if (message.notification != null) {
print('Message also contained a notification: ${message.notification}');
}
});
}

@override
Widget build(BuildContext context) {
return Scaffold();
Expand Down
16 changes: 8 additions & 8 deletions web/firebase-messaging-sw.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,15 @@ const firebaseConfig = {
firebase.initializeApp(firebaseConfig);
const messaging = firebase.messaging();

messaging.setBackgroundMessageHandler(function (payload) {
messaging.onBackgroundMessage(function (payload) {
console.log('[firebase-messaging-sw.js] Received background message ', payload);
// Customize notification here
const notificationTitle = 'Background Message Title';
const notificationOptions = {
body: 'Background Message body.',
icon: '/firebase-logo.png'
};
// const notificationTitle = 'Background Message Title';
// const notificationOptions = {
// body: 'Background Message body.',
// icon: '/icons/Icon-192.png'
// };

return self.registration.showNotification(notificationTitle,
notificationOptions);
// return self.registration.showNotification(notificationTitle,
// notificationOptions);
});
35 changes: 20 additions & 15 deletions web/index.html
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<html>

<head>
<!--
If you are serving your web app in a path other than the root, change the
Expand Down Expand Up @@ -27,7 +28,7 @@
<link rel="apple-touch-icon" href="icons/Icon-192.png">

<!-- Favicon -->
<link rel="icon" type="image/png" href="favicon.png"/>
<link rel="icon" type="image/png" href="favicon.png" />

<title>srm_timetable</title>
<link rel="manifest" href="manifest.json">
Expand All @@ -37,24 +38,28 @@
const serviceWorkerVersion = null;
</script>
<!-- This script adds the flutter initialization JS code -->
<script src = "saveData.js" defer></script>
<script src="saveData.js" defer></script>
<script src="flutter.js" defer></script>
</head>

<body>
<script src="main.dart.js" type="application/javascript"></script>
<script>
window.addEventListener('load', function(ev) {
// Download main.dart.js
_flutter.loader.loadEntrypoint({
serviceWorker: {
serviceWorkerVersion: serviceWorkerVersion,
},
onEntrypointLoaded: function(engineInitializer) {
engineInitializer.initializeEngine().then(function(appRunner) {
appRunner.runApp();
if ('serviceWorker' in navigator) {
// Service workers are supported. Use them.
window.addEventListener('load', function () {
// ADD THIS LINE
navigator.serviceWorker.register('/firebase-messaging-sw.js');

// Wait for registration to finish before dropping the <script> tag.
// Otherwise, the browser will load the script multiple times,
// potentially different versions.
var serviceWorkerUrl = 'flutter_service_worker.js?v=' + serviceWorkerVersion;

// ...
});
}
});
});
}
</script>
</body>
</html>

</html>

0 comments on commit e683191

Please sign in to comment.