我正在开发用于药物提醒的iOS应用程序。由于按时服用某些药物非常重要,我想在用户的手机上显示一个模态全局对话框。警报会有两种可能的反应:"我已服用药物"和"我还没有服用药物"。
到目前为止,我已尝试使用本地可操作通知执行此操作,但有两个主要问题:
在iOS上创建全局,模态,可操作的警报是否有更好的方法?当然,像闹钟这样的应用程序必须实现这样的功能。
我用来注册可操作类别的代码 - 这会要求用户确认他们想要通知,但之后只会将应用设置为能够创建横幅而不是警报。
UIMutableUserNotificationAction *confirmAction = [[UIMutableUserNotificationAction alloc] init];
confirmAction.identifier = @"CONFIRM";
confirmAction.title = @"Yes";
UIMutableUserNotificationAction *snoozeAction = [[UIMutableUserNotificationAction alloc] init];
snoozeAction.identifier = @"SNOOZE";
snoozeAction.title = @"Snooze";
UIMutableUserNotificationCategory *confirmSnoozeCategory = [[UIMutableUserNotificationCategory alloc] init];
confirmSnoozeCategory.identifier = @"CONFIRM_SNOOZE";
[confirmSnoozeCategory setActions:@[snoozeAction] forContext:UIUserNotificationActionContextDefault];
[confirmSnoozeCategory setActions:@[snoozeAction] forContext:UIUserNotificationActionContextMinimal];
NSSet *categories = [NSSet setWithObject:confirmSnoozeCategory];
settings = [UIUserNotificationSettings settingsForTypes:types categories:categories];
[[UIApplication sharedApplication]
registerUserNotificationSettings:settings];
我使用代码来调用具有所述可操作类别的通知。
notification = [[UILocalNotification alloc] initWithOptions:options]; // Options contains body, title, etc.
[notification setCategory:@"CONFIRM_SNOOZE"];
[notification setFireDate:[[NSDate alloc] initWithTimeIntervalSinceNow:30]];
[self.app scheduleLocalNotification:notification];