iOS

时间:2016-07-04 09:13:19

标签: ios

我正在开发用于药物提醒的iOS应用程序。由于按时服用某些药物非常重要,我想在用户的手机上显示一个模态全局对话框。警报会有两种可能的反应:"我已服用药物"和"我还没有服用药物"。

到目前为止,我已尝试使用本地可操作通知执行此操作,但有两个主要问题:

  • 当应用请求能够显示可操作的通知且用户批准此功能时,设置仅针对" banner"等级而不是"警告"水平。用户必须手动更改此设置。
  • 响应选项隐藏在"选项"警报按钮。

在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];

0 个答案:

没有答案