2017-07-13 11 views
0

私はそれぞれ新しいローカル通知を作成する2つの異なる機能を作成しました。ローカル通知の2つの異なるカテゴリ

func scheduleLocalNotification() { 
    // Create Notification Content 
    let notificationContent = UNMutableNotificationContent() 

    // Configure Notification Content 
    notificationContent.title = "Notif 1" 
    notificationContent.subtitle = "Local Notifications" 
    notificationContent.body = "hellow worlds." 

    // Set Category Identifier 
    notificationContent.categoryIdentifier = Notification.Category.tutorial 

    // Add Trigger 
    let notificationTrigger = UNTimeIntervalNotificationTrigger(timeInterval: 10.0, repeats: false) 

    // Create Notification Request 
    let notificationRequest = UNNotificationRequest(identifier: "cocoacasts_local_notification", content: notificationContent, trigger: notificationTrigger) 

    // Add Request to User Notification Center 
    UNUserNotificationCenter.current().add(notificationRequest) { (error) in 
     if let error = error { 
      print("Unable to Add Notification Request (\(error), \(error.localizedDescription))") 
     } 
    } 
} 
func scheduleLocalNotification2() { 
    // Create Notification Content 
    let notificationContent = UNMutableNotificationContent() 

    // Configure Notification Content 
    notificationContent.title = "Notif 2" 
    notificationContent.subtitle = "Local Notifications" 
    notificationContent.body = "hellow world + snooze" 

    // Set Category Identifier 
    notificationContent.categoryIdentifier = Notification.Category.tutorial 

    // Add Trigger 
    let notificationTrigger = UNTimeIntervalNotificationTrigger(timeInterval: 10.0, repeats: false) 

    // Create Notification Request 
    let notificationRequest = UNNotificationRequest(identifier: "cocoacasts_local_notification", content: notificationContent, trigger: notificationTrigger) 

    // Add Request to User Notification Center 
    UNUserNotificationCenter.current().add(notificationRequest) { (error) in 
     if let error = error { 
      print("Unable to Add Notification Request (\(error), \(error.localizedDescription))") 
     } 
    } 
} 

私は、任意のアクションとアクションボタンとの通知を作成するには、二なしで通常の通知を作成するには、最初の関数を求めています。だから私は、私は、その後のviewDidLoadでconfigureUserNotificationsCenterを呼ぶが、これはこれらのアクションボタンを持っているすべての私の通知が発生し、次の機能

func configureUserNotificationsCenter() { 
    // Configure User Notification Center 
    UNUserNotificationCenter.current().delegate = self 

    // Define Actions 
    let actionReadLater = UNNotificationAction(identifier: Notification.Action.readLater, title: "Read Later", options: []) 
    let actionShowDetails = UNNotificationAction(identifier: Notification.Action.showDetails, title: "Show Details", options: [.foreground]) 
    let actionUnsubscribe = UNNotificationAction(identifier: Notification.Action.unsubscribe, title: "Unsubscribe", options: [.destructive, .authenticationRequired]) 

    // Define Category 
    let tutorialCategory = UNNotificationCategory(identifier: Notification.Category.tutorial, actions: [actionReadLater, actionShowDetails, actionUnsubscribe], intentIdentifiers: [], options: []) 

    // Register Category 
    UNUserNotificationCenter.current().setNotificationCategories([tutorialCategory]) 
} 

を作成します。私は、scheduleLocalNotifications2関数を使ってスケジュールされた通知のみを必要とし、他の関数での通知はこれらのアクションボタンを持つべきではありません。それをどうやって作りますか?

答えて

1

どちらの方法も、notificationContent.categoryIdentifierNotification.Category.tutorialを使用しています。これは、ボタンを指定しているのと同じカテゴリです。そのため、両方にボタンが表示されます。ボタンのない通知用の2番目のカテゴリ識別子を作成する必要があります

関連する問題