Mobile Push Notifications API for Objective-C SDK
The Mobile Push Notifications feature connects native PubNub publishing to third-party push services. Supported services include Google Android FCM (Firebase Cloud Messaging) and Apple iOS APNs (Apple Push Notification service).
To learn more, read about Mobile Push Notifications.
APNs version support
PubNub Objective-C SDK supports both the HTTP/2-based Apple Push Notification service (APNs) and the already deprecated legacy binary protocol for APNs Mobile Push Notifications. Depending on the APNs version you use in your SDK, set pushType
in methods to either PNAPNS2Push
or PNAPNSPush
.
Add a device to a push notifications channel
note
Enable Mobile Push Notifications for your key in the Admin Portal. See how to enable add-on features.
Enable mobile push notifications on a set of channels.
Method(s)
To run Adding Device to Channel
, you can use the following method(s) in the Objective-C SDK:
- (void)addPushNotificationsOnChannels:(NSArray<NSString *> *)channels
withDevicePushToken:(NSData *)pushToken
andCompletion:(nullable PNPushNotificationsStateModificationCompletionBlock)block;
Parameter | Description |
---|---|
channels *Type: NSArray | Channels to enable for push notifications. |
pushToken *Type: NSData | Device push token. |
block Type: PNPushNotificationsStateModificationCompletionBlock | Completion block with request status. |
- (void)addPushNotificationsOnChannels:(NSArray<NSString *> *)channels
withDevicePushToken:(id)pushToken
pushType:(PNPushType)pushType
andCompletion:(nullable PNPushNotificationsStateModificationCompletionBlock)block;
Parameter | Description |
---|---|
channels *Type: NSArray <NSString *> * | Channels to enable for push notifications. |
pushToken *Type: id | Device token (NSString ). |
pushType *Type: PNPushType | Accepted values:
|
block Type: PNPushNotificationsStateModificationCompletionBlock | Completion block. |
- (void)addPushNotificationsOnChannels:(NSArray<NSString *> *)channels
withDevicePushToken:(id)pushToken
pushType:(PNPushType)pushType
environment:(PNAPNSEnvironment)environment
topic:(NSString *)topic
andCompletion:(nullable PNPushNotificationsStateModificationCompletionBlock)block;
Parameter | Description |
---|---|
channels *Type: NSArray <NSString *> * | Channels to enable for push notifications. |
pushToken *Type: id | Device token (NSData ). |
pushType *Type: PNPushType | Accepted values:
|
environment *Type: PNAPNSEnvironment | APNs environment (APNS2 only). |
topic *Type: NSString | APNs topic (bundle identifier). |
block Type: PNPushNotificationsStateModificationCompletionBlock | Completion block. |
Sample code
Add device to channel
#import <Foundation/Foundation.h>
#import <PubNub/PubNub.h>
// Basic configuration
PNConfiguration *config = [PNConfiguration configurationWithPublishKey:@"demo"
subscribeKey:@"demo"
userID:@"pushUser"];
// Create a PubNub client instance
PubNub *client = [PubNub clientWithConfiguration:config];
// Simulating a device token for example purposes
// In a real app, you would get this from the system
NSData *devicePushToken = [@"sample-device-token-12345" dataUsingEncoding:NSUTF8StringEncoding];
show all 76 linesResponse
Response objects returned by the client when the APNS Add Device
API is used:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNAcknowledgmentStatus : PNErrorStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
show all 16 linesOther examples
-
Example for method no. 2
show all 16 lines[self.client addPushNotificationsOnChannels:@[@"wwdc",@"google.io"]
withDevicePushToken:self.devicePushToken
pushType:PNFCMPush
andCompletion:^(PNAcknowledgmentStatus *status) {
if (!status.isError) {
// Push notifications successful enabled on passed channels.
} else {
/**
* Handle modification error. Check 'category' property to find out possible issue because
* of which request did fail.
*
* Request can be resent using: [status retry];
*/
} -
Example for method no. 3
show all 18 lines[self.client addPushNotificationsOnChannels:@[@"wwdc",@"google.io"]
withDevicePushToken:self.devicePushToken
pushType:PNAPNS2Push
environment:PNAPNSProduction
topic:@"com.my-application.bundle"
andCompletion:^(PNAcknowledgmentStatus *status) {
if (!status.isError) {
// Push notifications successful enabled on passed channels.
} else {
/**
* Handle modification error. Check 'category' property to find out possible issue because
* of which request did fail.
*
* Request can be resent using: [status retry];
Add a device to a push notifications channel (builder pattern)
note
Enable Mobile Push Notifications for your key in the Admin Portal. See how to enable add-on features.
Enable mobile push notifications on a set of channels.
Method(s)
Use the following builder methods:
APNS2 token
push()
.enable()
.token(id)
.channels(NSArray<NSString *> *)
.pushType(PNPushType)
.environment(PNAPNSEnvironment)
.topic(NSString *)
.performWithCompletion(nullable PNPushNotificationsStateModificationCompletionBlock);
Parameter | Description |
---|---|
channels *Type: NSArray <NSString *> | Channels to enable for push notifications. |
token *Type: id | Device token (NSData ). |
pushType *Type: PNPushType | Accepted values:
|
environment Type: PNAPNSEnvironment | APNs environment (APNS2 only). |
topic Type: NSString | APNs topic (bundle identifier). |
block Type: PNPushNotificationsStateModificationCompletionBlock | Completion block. |
Note
This method uses the builder pattern. You can omit optional arguments.
FCM token
push()
.enable()
.fcmToken(NSString *)
.channels(NSArray<NSString *> *)
.performWithCompletion(PNPushNotificationsStateModificationCompletionBlock);
Parameter | Description |
---|---|
channels *Type: NSArray <NSString *> * | Channels to enable for push notifications. |
fcmToken *Type: NSString * | FCM device push token. |
completion Type: PNPushNotificationsStateModificationCompletionBlock | Completion block with request status. |
Note
This method uses the builder pattern, you can remove the arguments which are optional.
Sample code
APNS2 token
self.client.push().enable()
.token(self.devicePushToken)
.channels(@[@"wwdc",@"google.io"])
.pushType(PNAPNS2Push)
.environment(PNAPNSProduction)
.topic(@"com.my-application.bundle")
.performWithCompletion(^(PNAcknowledgmentStatus *status) {
if (!status.isError) {
// Push notifications successful enabled on passed channels.
} else {
/**
* Handle modification error. Check 'category' property to find out possible issue because
* of which request did fail.
*
* Request can be resent using: [status retry];
show all 18 linesFCM token
self.client.push().enable()
.token(self.devicePushToken)
.channels(@[@"wwdc",@"google.io"])
.pushType(PNFCMPush)
.performWithCompletion(^(PNAcknowledgmentStatus *status) {
if (!status.isError) {
// Push notifications successful enabled on passed channels.
} else {
/**
* Handle modification error. Check 'category' property to find out possible issue because
* of which request did fail.
*
* Request can be resent using: [status retry];
*/
}
show all 16 linesResponse
Response objects returned by the client when the APNS Add Device
API is used:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNAcknowledgmentStatus : PNErrorStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
show all 16 linesList push notifications channels for a device (builder pattern)
note
Enable Mobile Push Notifications for your key in the Admin Portal. See how to enable add-on features.
List channels that have push notifications enabled for the specified device token.
Method(s)
To run Listing Channels For Device
, you can use the following method(s) in the Objective-C SDK:
- (void)pushNotificationEnabledChannelsForDeviceWithPushToken:(NSData *)pushToken
andCompletion:(PNPushNotificationsStateAuditCompletionBlock)block;
Parameter | Description |
---|---|
pushToken *Type: NSData | Device push token against which search on PubNub service should be performed. |
block *Type: PNPushNotificationsStateAuditCompletionBlock | Push notifications status processing completion block which pass two arguments: result - in case of successful request processing data field will contain results of push notifications audit operation; status - in case if an error occurred during request processing. |
- (void)pushNotificationEnabledChannelsForDeviceWithPushToken:(id)pushToken
pushType:(PNPushType)pushType
andCompletion:(PNPushNotificationsStateAuditCompletionBlock)block;
Parameter | Description |
---|---|
pushToken *Type: id | Device token / identifier that you must set to NSString |
pushType *Type: PNPushType | One of PNPushType fields which specify service to manage notifications for device specified with pushToken . Available push types:
|
block *Type: PNPushNotificationsStateAuditCompletionBlock | Audit notifications enabled channels request completion block. |
- (void)pushNotificationEnabledChannelsForDeviceWithPushToken:(id)pushToken
pushType:(PNPushType)pushType
environment:(PNAPNSEnvironment)environment
topic:(NSString *)topic
andCompletion:(PNPushNotificationsStateAuditCompletionBlock)block;
Parameter | Description |
---|---|
pushToken *Type: id | Device token / identifier that you must set to either NSData (for PNAPNS2Push and PNAPNSPush ) or NSString for other, depending on the pushType passed. |
pushType *Type: PNPushType | One of PNPushType fields which specify service to manage notifications for device specified with pushToken . Available push types:
|
environment *Type: PNAPNSEnvironment | One of PNAPNSEnvironment fields which specify environment within which device should manage list of channels with enabled notifications (works only if pushType set to PNAPNS2Push ). |
topic *Type: NSString | Notifications topic name (usually it is application's bundle identifier). |
block *Type: PNPushNotificationsStateAuditCompletionBlock | Audit notifications enabled channels request completion block. |
Sample code
List channels for device
[self.client pushNotificationEnabledChannelsForDeviceWithPushToken:self.devicePushToken
andCompletion:^(PNAPNSEnabledChannelsResult *result,
PNErrorStatus *status) {
if (!status) {
// Handle downloaded list of channels using: result.data.channels
}
else {
/**
Handle audition error. Check 'category' property
to find out possible reason because of which request did fail.
Review 'errorData' property (which has PNErrorData data type) of status
object to get additional information about issue.
show all 19 linesResponse
Response objects returned by the client when the APNS List Devices
API is used:
@interface PNAPNSEnabledChannelsData : PNServiceData
// Channels with active mobile push notifications.
@property (nonatomic, readonly, strong) NSArray<NSString *> *channels;
@end
@interface PNAPNSEnabledChannelsResult : PNResult
// APNS enabled channels audit request processed information.
@property (nonatomic, readonly, strong) PNAPNSEnabledChannelsData *data;
@end
Error response which is used in case of APNS List Devices
API call failure:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNErrorStatus : PNStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
show all 16 linesOther examples
-
Example for method no. 2
[self.client pushNotificationEnabledChannelsForDeviceWithPushToken:self.devicePushToken
pushType:PNFCMPush
andCompletion:^(PNFCMEnabledChannelsResult *result, PNErrorStatus *status) {
if (!status.isError) {
// Handle downloaded list of channels using: result.data.channels
} else {
/**
* Handle audition error. Check 'category' property to find out possible issue because of
* which request did fail.
*
* Request can be resent using: [status retry];
*/
}
}]; -
Example for method no. 3
show all 17 lines[self.client pushNotificationEnabledChannelsForDeviceWithPushToken:self.devicePushToken
pushType:PNAPNS2Push
environment:PNAPNSDevelopment
topic:@"com.my-application.bundle"
andCompletion:^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) {
if (!status.isError) {
// Handle downloaded list of channels using: result.data.channels
} else {
/**
* Handle audition error. Check 'category' property to find out possible issue because of
* which request did fail.
*
* Request can be resent using: [status retry];
*/
List channels for device (builder pattern)
Requires Mobile Push Notifications add-on
This method requires that the Mobile Push Notifications add-on is enabled for your key in the Admin Portal. Read the support page on enabling add-on features on your keys.
Request for all channels on which push notification has been enabled using specified pushToken.
Method(s)
To run Listing Channels For Device
, you can use the following method(s) in the Objective-C SDK
APNS2 token
push()
.audit()
.token(id)
.pushType(PNPushType)
.environment(PNAPNSEnvironment)
.topic(NSString *)
.performWithCompletion(PNPushNotificationsStateAuditCompletionBlock);
Parameter | Description |
---|---|
token *Type: id | Device token (NSData ). |
pushType *Type: PNPushType | Accepted values:
|
environment Type: PNAPNSEnvironment | APNs environment (APNS2 only). |
topic Type: NSString | APNs topic (bundle identifier). |
block *Type: PNPushNotificationsStateAuditCompletionBlock | Completion block. |
Note
This method uses the builder pattern. You can omit optional arguments.
FCM token
push()
.audit()
.fcmToken(NSString *)
.performWithCompletion(PNPushNotificationsStateModificationCompletionBlock);
Parameter | Description |
---|---|
fcmToken *Type: NSString * | FCM device push token. |
completion *Type: PNPushNotificationsStateAuditCompletionBlock | Completion block with result and status . |
Note
This method uses the builder pattern. You can omit optional arguments.
Sample code
APNS2 token
self.client.push().audit()
.token(self.devicePushToken)
.pushType(PNAPNS2Push)
.environment(PNAPNSProduction)
.topic(@"com.my-application.bundle")
.performWithCompletion(^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) {
if (!status.isError) {
// Handle downloaded list of channels using: result.data.channels
} else {
/**
* Handle audition error. Check 'category' property to find out possible issue because of
* which request did fail.
*
* Request can be resent using: [status retry];
*/
show all 17 linesFCM token
self.client.push().audit()
.fcmToken(self.pushToken)
.performWithCompletion(^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) {
if (!status) {
// Handle downloaded list of channels using: result.data.channels
} else {
/**
Handle audition error. Check 'category' property
to find out possible reason because of which request did fail.
Review 'errorData' property (which has PNErrorData data type) of status
object to get additional information about issue.
Request can be resent using: [status retry];
*/
}
show all 16 linesResponse
Response objects returned by the client when the APNS List Devices
API is used:
@interface PNAPNSEnabledChannelsData : PNServiceData
// Channels with active mobile push notifications.
@property (nonatomic, readonly, strong) NSArray<NSString *> *channels;
@end
@interface PNAPNSEnabledChannelsResult : PNResult
// APNS enabled channels audit request processed information.
@property (nonatomic, readonly, strong) PNAPNSEnabledChannelsData *data;
@end
Error response which is used in case of APNS List Devices
API call failure:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNErrorStatus : PNStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
show all 16 linesRemove device from channel
Requires Mobile Push Notifications add-on
This method requires that the Mobile Push Notifications add-on is enabled for your key in the Admin Portal. Read the support page on enabling add-on features on your keys.
Disable mobile push notifications on a provided set of channels.
Method(s)
To run Removing Device From Channel
, you can use the following method(s) in the Objective-C SDK:
- (void)removePushNotificationsFromChannels:(NSArray<NSString *> *)channels
withDevicePushToken:(NSData *)pushToken
andCompletion:(nullable PNPushNotificationsStateModificationCompletionBlock)block;
Parameter | Description |
---|---|
channels *Type: NSArray | Channels to disable for push notifications. If empty, disables all. |
pushToken *Type: NSData | Device push token. |
block Type: PNPushNotificationsStateModificationCompletionBlock | Completion block with request status. |
- (void)removePushNotificationsFromChannels:(NSArray<NSString *> *)channels
withDevicePushToken:(id)pushToken
pushType:(PNPushType)pushType
andCompletion:(nullable PNPushNotificationsStateModificationCompletionBlock)block;
Parameter | Description |
---|---|
channels *Type: NSArray <NSString *> * | Channels to disable for push notifications. |
pushToken *Type: id | Device token (NSString ). |
pushType *Type: PNPushType | Accepted values:
|
block Type: PNPushNotificationsStateModificationCompletionBlock | Completion block. |
- (void)removePushNotificationsFromChannels:(NSArray<NSString *> *)channels
withDevicePushToken:(id)pushToken
pushType:(PNPushType)pushType
environment:(PNAPNSEnvironment)environment
topic:(NSString *)topic
andCompletion:(nullable PNPushNotificationsStateModificationCompletionBlock)block;
Parameter | Description |
---|---|
channels *Type: NSArray <NSString *> * | Channels to disable for push notifications. |
pushToken *Type: id | Device token (NSData ). |
pushType *Type: PNPushType | Accepted values:
|
environment *Type: PNAPNSEnvironment | APNs environment (APNS2 only). |
topic *Type: NSString | APNs topic (bundle identifier). |
block Type: PNPushNotificationsStateModificationCompletionBlock | Completion block. |
Sample code
Remove device from channel
[self.client removePushNotificationsFromChannels:@[@"wwdc",@"google.io"]
withDevicePushToken:self.devicePushToken
andCompletion:^(PNAcknowledgmentStatus *status) {
if (!status.isError) {
// Handle successful push notification disabling on passed channels.
}
else {
/**
Handle modification error. Check 'category' property
to find out possible reason because of which request did fail.
Review 'errorData' property (which has PNErrorData data type) of status
object to get additional information about issue.
show all 20 linesResponse
Response objects returned by the client when the APNS Remove Device
API is used:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNAcknowledgmentStatus : PNErrorStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
show all 16 linesOther examples
-
Example for method no. 2
show all 16 lines[self.client removePushNotificationsFromChannels:@[@"wwdc",@"google.io"]
withDevicePushToken:self.devicePushToken
pushType:PNFCMPush
andCompletion:^(PNAcknowledgmentStatus *status) {
if (!status.isError) {
// Push notification successfully disabled on passed channels.
} else {
/**
* Handle modification error. Check 'category' property to find out possible issue because
* of which request did fail.
*
* Request can be resent using: [status retry];
*/
} -
Example for method no. 3
show all 18 lines[self.client removePushNotificationsFromChannels:@[@"wwdc",@"google.io"]
withDevicePushToken:self.devicePushToken
pushType:PNAPNS2Push
environment:PNAPNSProduction
topic:@"com.my-application.bundle"
andCompletion:^(PNAcknowledgmentStatus *status) {
if (!status.isError) {
// Push notification successfully disabled on passed channels.
} else {
/**
* Handle modification error. Check 'category' property to find out possible issue because
* of which request did fail.
*
* Request can be resent using: [status retry];
Remove a device from push notifications channels (builder pattern)
note
Enable Mobile Push Notifications for your key in the Admin Portal. See how to enable add-on features.
Disable mobile push notifications on a set of channels.
Method(s)
Use the following builder methods:
APNS2 token
push()
.disable()
.channels(NSArray<NSString *> *)
.token(id)
.pushType(PNPushType)
.environment(PNAPNSEnvironment)
.topic(NSString *)
.performWithCompletion(nullable PNPushNotificationsStateModificationCompletionBlock);
Parameter | Description |
---|---|
channels *Type: NSArray <NSString *> * | Channels to disable for push notifications. |
token *Type: id | Device token (NSData ). |
pushType *Type: PNPushType | Accepted values:
|
environment Type: PNAPNSEnvironment | APNs environment (APNS2 only). |
topic Type: NSString | APNs topic (bundle identifier). |
block Type: PNPushNotificationsStateModificationCompletionBlock | Completion block. |
Note
This method uses the builder pattern. You can omit optional arguments.
FCM token
push()
.disable()
.fcmToken(NSString *)
.channels(NSArray<NSString *> *)
.performWithCompletion(PNPushNotificationsStateModificationCompletionBlock);
Parameter | Description |
---|---|
channels *Type: NSArray <NSString *> * | Channels to disable for push notifications. If empty, disables all. |
fcmToken *Type: NSString * | FCM device push token. |
completion Type: PNPushNotificationsStateAuditCompletionBlock | Completion block with request status. |
Note
This method uses the builder pattern. You can omit optional arguments.
Sample code
APNS2 token
self.client.push().disable()
.token(self.devicePushToken)
.channels(@[@"wwdc",@"google.io"])
.pushType(PNAPNS2Push)
.environment(PNAPNSProduction)
.topic(@"com.my-application.bundle")
.performWithCompletion(^(PNAcknowledgmentStatus *status) {
if (!status.isError) {
// Push notification successfully disabled on passed channels.
} else {
/**
* Handle modification error. Check 'category' property to find out possible issue because
* of which request did fail.
*
* Request can be resent using: [status retry];
show all 18 linesFCM token
self.client.push().disable()
.channels(@[@"channel1", @"channel2"])
.fcmToken(self.pushToken)
.performWithCompletion(^(PNAcknowledgmentStatus *status) {
if (!status.isError) {
// Handle successful push notification enabling on passed channels.
} else {
/**
Handle modification error. Check 'category' property
to find out possible reason because of which request did fail.
Review 'errorData' property (which has PNErrorData data type) of status
object to get additional information about issue.
Request can be resent using: [status retry];
*/
show all 17 linesResponse
Response objects returned by the client when the APNS Remove Device
API is used:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNAcknowledgmentStatus : PNErrorStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
show all 16 linesRemove a device from all push notifications channels (builder pattern)
Requires Mobile Push Notifications add-on
This method requires that the Mobile Push Notifications add-on is enabled for your key in the Admin Portal. Read the support page on enabling add-on features on your keys.
Disable mobile push notifications from all channels registered with the specified pushToken.
Method(s)
To run Remove all mobile push notifications
, you can use the following method(s) in the Objective-C SDK:
- (void)removeAllPushNotificationsFromDeviceWithPushToken:(NSData *)pushToken
andCompletion:(nullable PNPushNotificationsStateModificationCompletionBlock)block
Parameter | Description |
---|---|
pushToken *Type: NSData | Device push token which should be used to disable push notifications on a specified set of channels . |
block Type: PNPushNotificationsStateModificationCompletionBlock | Push notifications removal from device processing completion block which pass only one argument - request processing status to report about how data pushing was successful or not. |
- (void)removeAllPushNotificationsFromDeviceWithPushToken:(id)pushToken
pushType:(PNPushType)pushType
andCompletion:(nullable PNPushNotificationsStateModificationCompletionBlock)block;
Parameter | Description |
---|---|
pushToken *Type: id | Device token / identifier that you must set to NSString . |
pushType *Type: PNPushType | One of PNPushType fields which specify service to manage notifications for device specified with pushToken . Available push types:
|
block Type: PNPushNotificationsStateModificationCompletionBlock | Remove all notifications request completion block. |
- (void)removeAllPushNotificationsFromDeviceWithPushToken:(id)pushToken
pushType:(PNPushType)pushType
environment:(PNAPNSEnvironment)environment
topic:(NSString *)topic
andCompletion:(nullable PNPushNotificationsStateModificationCompletionBlock)block;
Parameter | Description |
---|---|
channels *Type: NSArray <NSString *> * | List of channel names for which mobile push notifications should be disabled. |
pushToken *Type: id | Device token / identifier that you must set to NSData . |
pushType *Type: PNPushType | One of PNPushType fields which specify service to manage notifications for device specified with pushToken . Available push types:
|
environment *Type: PNAPNSEnvironment | One of PNAPNSEnvironment fields which specify environment within which device should manage list of channels with enabled notifications (works only if pushType set to PNAPNS2Push ). |
topic *Type: NSString | Notifications topic name (usually it is application's bundle identifier). |
block Type: PNPushNotificationsStateModificationCompletionBlock | Remove all notifications request completion block. |
Sample code
Remove all mobile push notifications
[self.client removeAllPushNotificationsFromDeviceWithPushToken:self.devicePushToken
andCompletion:^(PNAcknowledgmentStatus *status) {
if (!status.isError) {
/**
Handle successful push notification disabling for all channels associated with
specified device push token.
*/
}
else {
/**
Handle modification error. Check 'category' property
to find out possible reason because of which request did fail.
show all 22 linesResponse
Response objects returned by the client when the APNS Remove All Devices
API is used:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNAcknowledgmentStatus : PNErrorStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
show all 16 linesOther examples
-
Example for method no. 2.
show all 18 lines[self.client removeAllPushNotificationsFromDeviceWithPushToken:self.devicePushToken
pushType:PNFCMPush
andCompletion:^(PNAcknowledgmentStatus *status) {
if (!status.isError) {
/**
* Push notification successfully disabled for all channels associated with specified
* device push token.
*/
} else {
/**
* Handle modification error. Check 'category' property to find out possible issue because
* of which request did fail.
*
* Request can be resent using: [status retry]; -
Example for method no. 3
show all 20 lines[self.client removeAllPushNotificationsFromDeviceWithPushToken:self.devicePushToken
pushType:PNAPNS2Push
environment:PNAPNSProduction
topic:@"com.my-application.bundle"
andCompletion:^(PNAcknowledgmentStatus *status) {
if (!status.isError) {
/**
* Push notification successfully disabled for all channels associated with specified
* device push token.
*/
} else {
/**
* Handle modification error. Check 'category' property to find out possible issue because
* of which request did fail.
Remove all mobile push notifications (builder pattern)
Requires Mobile Push Notifications add-on
This method requires that the Mobile Push Notifications add-on is enabled for your key in the Admin Portal. Read the support page on enabling add-on features on your keys.
Method(s)
push()
.disableAll()
.token(id)
.pushType(PNPushType)
.environment(PNAPNSEnvironment)
.topic(NSString *)
.performWithCompletion(nullable PNPushNotificationsStateModificationCompletionBlock);
Parameter | Description |
---|---|
token *Type: id | Device token (NSData for PNAPNS2Push , otherwise NSString ). |
pushType *Type: PNPushType | Accepted values:
|
environment Type: PNAPNSEnvironment | APNs environment (APNS2 only). |
topic Type: NSString | APNs topic (bundle identifier). |
block Type: PNPushNotificationsStateModificationCompletionBlock | Completion block. |
Note
This method uses the builder pattern. You can omit optional arguments.
Sample code
Remove all mobile push notifications, using builder pattern (APNS2)
self.client.push().disableAll()
.token(self.devicePushToken)
.pushType(PNAPNS2Push)
.environment(PNAPNSProduction)
.topic(@"com.my-application.bundle")
.performWithCompletion(^(PNAcknowledgmentStatus *status) {
if (!status.isError) {
/**
* Push notification successfully disabled for all channels associated with specified
* device push token.
*/
} else {
/**
* Handle modification error. Check 'category' property to find out possible issue because
* of which request did fail.
show all 20 linesRemove all mobile push notifications, using builder pattern (FCM)
self.client.push().disableAll()
.token(self.devicePushToken)
.pushType(PNFCMPush)
.performWithCompletion(^(PNAcknowledgmentStatus *status) {
if (!status.isError) {
/**
* Push notification successfully disabled for all channels associated with specified
* device push token.
*/
} else {
/**
* Handle modification error. Check 'category' property to find out possible issue because
* of which request did fail.
*
* Request can be resent using: [status retry];
show all 18 linesResponse
Response object returned by the client when the APNS Remove All Devices
API is used:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNAcknowledgmentStatus : PNErrorStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
show all 16 lines