requestNotificationPermissionWeb method
Implementation
Future<String> requestNotificationPermissionWeb() async {
try {
// Check if notifications are supported
debugPrint('Checking notification support...');
try {
final permission = web.Notification.permission;
debugPrint('Notification permission API available: $permission');
} catch (e) {
debugPrint('Notifications not supported: $e');
return 'unsupported';
}
final permissions = web.window.navigator.permissions;
final queryOptions = {'name': 'notifications'}.jsify() as JSObject;
final result = await permissions.query(queryOptions).toDart;
final state = result.state;
if (state == 'granted') {
return 'granted';
} else if (state == 'denied') {
return 'denied';
} else if (state == 'prompt') {
// Request permission
final permission = await web.Notification.requestPermission().toDart;
return permission.toDart == 'granted' ? 'granted' : 'denied';
}
return 'denied';
} catch (e) {
debugPrint('Notification permission error: $e');
return 'error';
}
}