1

通知を受け取ると、実行可能なボタンが必要です。それは完璧に動作スケジュールUILocalNotification

(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
UIApplication *application = [UIApplication sharedApplication]; 

if(SYSTEM_VERSION_LESS_THAN(@"10.0")) { 
    UIMutableUserNotificationAction *action1 = [[UIMutableUserNotificationAction alloc] init]; 
    [action1 setActivationMode:UIUserNotificationActivationModeForeground]; 
    [action1 setTitle:@"action1Text"]; 
    [action1 setIdentifier:@"action1id"]; 
    [action1 setDestructive:NO]; 
    [action1 setAuthenticationRequired:NO]; 

    UIMutableUserNotificationCategory *actionCategory = [[UIMutableUserNotificationCategory alloc] init]; 
    [actionCategory setIdentifier:kMTNRemindLaterCategory]; 
    [actionCategory setActions:@[action1] 
        forContext:UIUserNotificationActionContextDefault]; 

    NSSet *categories = [NSSet setWithObject:actionCategory]; 
    UIUserNotificationType types = (UIUserNotificationTypeAlert| 
            UIUserNotificationTypeSound| 
            UIUserNotificationTypeBadge); 

    UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:types categories:categories]; 

    [[UIApplication sharedApplication] registerUserNotificationSettings:settings]; 

} 
} 

- リモートプッシュ通知を処理するために、私は次のコードを追加しました。私はボタンを見て、アクションを処理することができます。今、ボタンをクリックすると、さらにロジックに基づいて、上で定義したのと同じアクション可能なボタンを使用してローカル通知をスケジュールします。

NSDate *date = [NSDate dateWithTimeIntervalSinceNow:10]; 
UILocalNotification *localNotification = [[UILocalNotification alloc] init]; 
localNotification.fireDate = date; 
localNotification.timeZone = [NSTimeZone defaultTimeZone]; 
localNotification.alertBody = @"title 4"; 
localNotification.hasAction = YES; 
localNotification.alertAction = @"action"; 
localNotification.soundName = UILocalNotificationDefaultSoundName; 
localNotification.category = kRemindLaterCategory; 
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification]; 

ローカル通知がスケジュールと私は通知を受信して​​いる:私は(NOT AppDelegateファイル内)のコードを追加しました。しかし、私は実行可能なボタンが表示されません。

私は

- (void) application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification; 

リンゴのドキュメントを読むには便利そうです。しかし、これは通知をクリックするとトリガされます。私が言及 その他の記事: https://www.shinobicontrols.com/blog/ios8-day-by-day-day-25-notification-actions actions and categories don't show in UILocalNotification in iOS How can I add action buttons/actions to UILocalNotification alert?

誰もが正しい方向に私を指すしてくださいことはできますか?

答えて

1

kRemindLaterCategory値とkMTNRemindLaterCategoryが同じである必要があり、そして、あなたは、両方が同じでない場合はローカル通知に割り当てられたカテゴリがされていないため、実用的なボタンが表示されないことができ、また、ローカル通知で実用的なボタンを見ることができます登録された

+0

あなたは最高です!ありがとう、トン:D –

関連する問題