没有模式,但有时handleActionWithIdentifier:forLocalNotification:在本地通知的后台操作按钮上点击时不会被触发。当在Watch上发送的通知上点击操作按钮时会更频繁地发生这种情况,但有时也会在iPhone上发送通知时发生。
这就是我得出的结论,即该方法没有被解雇。
- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forLocalNotification:(UILocalNotification *)notification completionHandler:(void (^)())completionHandler {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *str = [[defaults objectForKey:@"WatchActionLog"]?[defaults objectForKey:@"WatchActionLog"]:@"" stringByAppendingString:[NSString stringWithFormat:@"**S**%@",[notification.userInfo valueForKeyPath:@"customDictionary.notificationName"]]];
[defaults setObject:str forKey:@"WatchActionLog"];
[defaults synchronize];
// Do something
str = [[defaults objectForKey:@"WatchActionLog"]?[defaults objectForKey:@"WatchActionLog"]:@"" stringByAppendingString:@"**E**"];
[defaults setObject:str forKey:@"WatchActionLog"];
[defaults synchronize];
completionHandler();}
每当动作没有完成它必须做的事情时,我注意到WatchActionLog也没有更新。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *str = [defaults objectForKey:@"WatchActionLog"];
NSLog(@"Watch action log - %@",str);
// Remaining code follows }
还有其他人也看到过这个问题。 This是迄今为止我发现的另一个提及。我正在测试iOS 9 + watchOS 2。