handleNotificationActions static method
Future<void>
handleNotificationActions(
- String type,
- dynamic event, {
- void navHandler(
- String url
)?,
})
Implementation
static Future<void> handleNotificationActions(
String type,
dynamic event, {
void Function(String url)? navHandler,
}) async {
try {
String url = '';
String action = '';
if (type == 'clicked') {
action = event['pressAction']?['id'] ?? '';
final data = event['notification']?['data'] ?? {};
switch (action) {
case 'default':
url = data['url'] ?? '';
break;
case 'action-1':
url = data['action1_url'] ?? '';
break;
case 'action-2':
url = data['action2_url'] ?? '';
break;
case 'action-3':
url = data['action3_url'] ?? '';
break;
}
}
final messageId = event['notification']?['data']?['message_id'];
NotificationHelper.sendNotificationStatus(messageId, type,
failureReason: '', buttonId: action);
if (url.isNotEmpty) {
if (navHandler != null) {
navHandler(url);
} else {
if (await canLaunchUrl(Uri.parse(url))) {
await launchUrl(Uri.parse(url));
} else {
}
}
}
// ignore: empty_catches
} catch (e) {
}
}