Instance Method

application(_:handleActionWithIdentifier:forRemoteNotification:completionHandler:)

Tells the app delegate to perform the custom action specified by a remote notification.

Declaration

optional func application(_ application: UIApplication, handleActionWithIdentifier identifier: String?, forRemoteNotification userInfo: [AnyHashable : Any], completionHandler: @escaping () -> Void)

Parameters

application

The app object that received the remote notification.

identifier

The identifier associated with the custom action.

userInfo

A dictionary that contains information related to the remote notification. This dictionary originates from the provider as a JSON-defined dictionary, which iOS converts to an NSDictionary object before calling this method. The contents of the dictionary are the remote notification payload, which consists only of property-list objects plus NSNull. For more information about the contents of the remote notification dictionary, see Local and Remote Notification Programming Guide.

completionHandler

The block to execute when you are finished performing the specified action. You must call this block at the end of your method.

Discussion

The app calls this method when the user taps an action button in an alert displayed in response to a remote notification. Remote notifications that include a category key in their payload display buttons for the actions in the corresponding category. If the user taps one of those buttons, the system wakes up the app (launching it if needed) and calls this method in the background. Your implementation of this method should perform the action associated with the specified identifier and execute the block in the completionHandler parameter as soon as you are done. Failure to execute the completion handler block at the end of your implementation will cause your app to be terminated.

To configure the actions for a given category, create a UIUserNotificationActionSettings object and register it with the app when you call the registerUserNotificationSettings(_:) method.