gpt4 book ai didi

ios - iOS 的 UILocalNotification 中不显示操作和类别

转载 作者:可可西里 更新时间:2023-11-01 05:40:36 26 4
gpt4 key购买 nike

我相信苹果文档中有以下内容 here我只需要为 UILocalNotification 设置一个类别:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {


UIMutableUserNotificationAction *acceptAction =
[[UIMutableUserNotificationAction alloc] init];

// Define an ID string to be passed back to your app when you handle the action
acceptAction.identifier = @"ACCEPT_IDENTIFIER";

// Localized string displayed in the action button
acceptAction.title = @"Accept";

// If you need to show UI, choose foreground
acceptAction.activationMode = UIUserNotificationActivationModeBackground;

// Destructive actions display in red
acceptAction.destructive = NO;

// Set whether the action requires the user to authenticate
acceptAction.authenticationRequired = NO;


// First create the category
UIMutableUserNotificationCategory *inviteCategory =
[[UIMutableUserNotificationCategory alloc] init];

// Identifier to include in your push payload and local notification
inviteCategory.identifier = @"INVITE_CATEGORY";

// Add the actions to the category and set the action context
[inviteCategory setActions:@[acceptAction]
forContext:UIUserNotificationActionContextDefault];

// Set the actions to present in a minimal context
[inviteCategory setActions:@[acceptAction]
forContext:UIUserNotificationActionContextMinimal];

NSSet *categories = [NSSet setWithObjects:inviteCategory, nil];



UIUserNotificationSettings* notificationSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:categories];
[[UIApplication sharedApplication] registerUserNotificationSettings:notificationSettings];

// Handle launching from a notification
UILocalNotification *localNotif =
[launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
if (localNotif) {
NSLog(@"Recieved Notification %@",localNotif);
}

return YES;
}

以下是我构建本地通知的方式:

NSDate *dateChosen = [self.reminderDatePicker date];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:(NSCalendarUnitHour | NSCalendarUnitMinute) fromDate:dateChosen];
NSInteger hour = [components hour];
NSInteger minute = [components minute];

// NSCalendar *calendar = [NSCalendar currentCalendar];
// NSDateComponents *components = [[NSDateComponents alloc] init];
[components setDay: 3];
[components setMonth: 7];
[components setYear: 2012];
[components setHour: hour];
[components setMinute: minute];
[components setSecond: 0];
[calendar setTimeZone: [NSTimeZone defaultTimeZone]];
NSDate *dateToFire = [calendar dateFromComponents:components];



UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.fireDate = dateToFire;

[localNotification setRepeatInterval: kCFCalendarUnitDay];
NSLog(@"Notification will be shown on: %@ ",localNotification.fireDate);
localNotification.userInfo = [[NSDictionary alloc] initWithObjectsAndKeys:self.dayPeriod, @"name", nil];
localNotification.timeZone = [NSTimeZone defaultTimeZone];
localNotification.alertBody = alertMessage;
localNotification.alertAction = NSLocalizedString(@"View details", nil);
localNotification.repeatInterval = NSDayCalendarUnit;
localNotification.soundName = UILocalNotificationDefaultSoundName;
localNotification.applicationIconBadgeNumber = -1;

[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];

它只显示带有关闭按钮的默认通知,而不是我的接受按钮。

如何让这个“接受”按钮显示在我的本地通知上?

最佳答案

UILocalNotification 代码主体中缺少的一件事是明确告诉它是基于类别的通知。

将类别属性添加到您的通知:

localNotification.category = @"INVITE_CATEGORY";

关于ios - iOS 的 UILocalNotification 中不显示操作和类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32239012/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com