react-native - 在特定时间间隔后显示通知 - iOS
react-native - showing notification after a specific intervals of time - iOS
我有一个场景,我需要在每个特定时间段(通常是 3 天)后使用本地通知而不是使用基于 Internet 的推送通知来提醒用户。
我正在使用 React Native,并且有 Native Android 的背景。我正在寻找类似于 AlarmService 的东西,或者最好是 SyncAdapter for iOS,它可以是原生的,也可以是基于 react-native 的。
我最终制作了自己的简单模块来处理预定的本地通知...下面是我用于预定通知的片段。
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
//check notification permission
[center getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings * _Nonnull settings) {
if (settings.authorizationStatus != UNAuthorizationStatusAuthorized) {
// Notifications not allowed
}else{
// show notificaiton
RCTLogInfo(@"Showing Notification with title: %@", title);
//set notification content
UNMutableNotificationContent *content = [UNMutableNotificationContent new];
content.title = title;
content.body = body;
content.sound = [UNNotificationSound defaultSound];
//add timer in ms
NSTimeInterval timeInterval = interval;
UNTimeIntervalNotificationTrigger *trigger = [UNTimeIntervalNotificationTrigger triggerWithTimeInterval:timeInterval repeats:NO];
//set identifier with any string
NSString *identifier = id;
UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:identifier content:content trigger:trigger];
//request for scheduling notification
[center addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) {
if(error != nil){
RCTLogInfo(@"Something went wrong: %@", error);
};
}];
}
}];
这是我的日程安排的精简版,实际代码也支持添加图像附件,但由于这个特定的 post 只是关于安排它们,所以我不得不放弃一些功能。
我有一个场景,我需要在每个特定时间段(通常是 3 天)后使用本地通知而不是使用基于 Internet 的推送通知来提醒用户。
我正在使用 React Native,并且有 Native Android 的背景。我正在寻找类似于 AlarmService 的东西,或者最好是 SyncAdapter for iOS,它可以是原生的,也可以是基于 react-native 的。
我最终制作了自己的简单模块来处理预定的本地通知...下面是我用于预定通知的片段。
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
//check notification permission
[center getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings * _Nonnull settings) {
if (settings.authorizationStatus != UNAuthorizationStatusAuthorized) {
// Notifications not allowed
}else{
// show notificaiton
RCTLogInfo(@"Showing Notification with title: %@", title);
//set notification content
UNMutableNotificationContent *content = [UNMutableNotificationContent new];
content.title = title;
content.body = body;
content.sound = [UNNotificationSound defaultSound];
//add timer in ms
NSTimeInterval timeInterval = interval;
UNTimeIntervalNotificationTrigger *trigger = [UNTimeIntervalNotificationTrigger triggerWithTimeInterval:timeInterval repeats:NO];
//set identifier with any string
NSString *identifier = id;
UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:identifier content:content trigger:trigger];
//request for scheduling notification
[center addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) {
if(error != nil){
RCTLogInfo(@"Something went wrong: %@", error);
};
}];
}
}];
这是我的日程安排的精简版,实际代码也支持添加图像附件,但由于这个特定的 post 只是关于安排它们,所以我不得不放弃一些功能。