WatchOS 应用程序 4.0:如何安排本地通知

7

我的应用在后台或非活动模式下,本地通知不起作用。我从未在手表上收到本地通知。

更新:少于3分钟安排本地通知时,它可以正常工作,但超过3分钟则无法工作。那么如何解决这个问题?

根据我的理解,我的代码如下。

UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
center.delegate = self;

// Objective-C
UNMutableNotificationContent *content = [UNMutableNotificationContent new];
content.title = [NSString localizedUserNotificationStringForKey:@"Remider!" arguments:nil];
content.body = [NSString localizedUserNotificationStringForKey:@"Your watch is out of range" arguments:nil];
content.sound = [UNNotificationSound defaultSound];

// Time
// 15 min
double timer = 15*60;
UNTimeIntervalNotificationTrigger *trigger = [UNTimeIntervalNotificationTrigger triggerWithTimeInterval:time
                                                                                                repeats:NO];
// Actions
UNNotificationAction *snoozeAction = [UNNotificationAction actionWithIdentifier:@"Track"
                                                                          title:@"Track" options:UNNotificationActionOptionForeground];

// Objective-C
UNNotificationCategory *category = [UNNotificationCategory categoryWithIdentifier:@"UYLReminderCategory"
                                                                          actions:@[snoozeAction] intentIdentifiers:@[]
                                                                          options:UNNotificationCategoryOptionCustomDismissAction];
NSSet *categories = [NSSet setWithObject:category];

// Objective-C
[center setNotificationCategories:categories];

// Objective-C
content.categoryIdentifier = @"UYLReminderCategory";

NSString *identifier = [self stringUUID];
UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:identifier
                                                                      content:content trigger:trigger];

[center addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) {
    if (error != nil) {
        NSLog(@"Something went wrong: %@",error);
    }
}];

感谢您提供任何建议或想法。
1个回答

1
请确保您的iPhone已锁定。在通知方面,它是关于偏好在哪里传递该通知。
在模拟器上运行您的手表应用程序,从iPhone模拟器安排通知并锁定iPhone模拟器屏幕,保持手表模拟器处于活动状态,在这种情况下,当触发通知时,它将传递到您的手表模拟器。在测试实际设备时,情况也是如此。 源链接 当iPhone和手表都被锁定时,优先选择iPhone。
更新 Apple Watch上的通知

我知道这个。我在实际设备上进行了测试,但手表设备上没有收到本地通知的安排。 - BuLB JoBs
我测试了10分钟的间隔,它可以工作。确保通知已经被安排好了。如果是这样的话,那么它一定会被传递到某个地方,如果不在手表上,那就必须是iPhone。 - Muneeba
我很感谢你的工作,但我想在手表应用程序上收到这个通知。有关手表应用程序的任何建议或想法吗? - BuLB JoBs
1
正如我之前提到的,通知发送的位置是由个人偏好决定的,操作系统会处理它。详细信息请参见此链接:https://support.apple.com/en-us/HT204791。请尝试在我的手表应用程序中自定义通知选项。 - Muneeba
我喜欢你的评论,但是当我的手表应用程序处于后台或非活动模式时,需要本地通知。而且,如果我的设备与手表断开连接,则需要通知,因此上面的链接对我没有用。如果您知道的话,请提供更多帮助。 - BuLB JoBs
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接