My name is Gabriel Hernan Vion, I am a young game developer from Argentina. I work in a small digital agency called Quadramma as Interactive Designer.

I was using Unity3d to make an application for a client which needed to have Push Notifications in order to send useful information to their users. As it was my first time working with iOS systems I didn't know where to start. So I googled the problem and tried several different approaches to it, but non of them seemed to work correctly. After dealing with intricate solutions and wasting a lot of time failing I came a across Pushwoosh... And it was Amazing! I couldn't believe how easy it seemed to be!

No tricky coding, no weird systems or plug-ins, no tedious configurations or hours of testing! It was wonderful! Just follow four simple steps and you are good to go! Easy as that!

And if you happen to have any kind of problem, their caring customer support service will provide the assistance that you need.

I am definitely recommending Pushwoosh to my co-workers. And I am planing on using it on my future projects.

Gabriel Hernan Vion

Interactive Designer



Native iOS SDK

Download SDK Download Sample

To integrate Pushwoosh into your application you need to do simple following steps:

1. For the truly seamless integration all you have to do is to simply add Push NotificationsSDK to your project!

2. In your Info.plist add the following key Pushwoosh_APPID with your Pushwoosh Application ID string value

3. To handle push notifications add the following function to your App Delegate.m file

#import "PushNotificationManager.h"

- (void) onPushAccepted:(PushNotificationManager *)pushManager withNotification:(NSDictionary *)pushNotification {
	NSLog(@"Push notification received");
That’s it! Easy, isn’t it?

You might need to add -ObjC flag to the Linker Flags in your project.

See this guide on how to do that:

See the sample project here:

NOTE: Simulator is not able neither to subscribe nor receive push notifications. Push Notifications SDK supports iOS 4.0 and higher.

Note: If your device is connected to the Internet via WiFi, and messages don’t get through to the device, please make sure APNs ports are not blocked by your firewall.

Push providers, iOS devices, and Mac computers are often behind firewalls. To send notifications, you will need to allow inbound and outbound TCP packets over port 2195. Devices and computers connecting to the push service over Wi-Fi will need to allow inbound and outbound TCP packets over port 5223.

The IP address range for the push service is subject to change; the expectation is that providers will connect by hostname rather than IP address. The push service uses a load balancing scheme that yields a different IP address for the same hostname. However, the entire address block is assigned to Apple, so you can specify that range in your firewall rules.

Push Notifications SDK API:

@protocol PushNotificationDelegate

//By default this method displays alert and calls onPushAccepted if user has pressed OK button.
//If this method is implemented in the App Delegate, "onPushAccepted" method will not be called and notification alert will not be displayed
- (void) onPushReceived:(PushNotificationManager *)pushManager withNotification:(NSDictionary *)pushNotification onStart:(BOOL)onStart;

//user pressed OK on the push notification alert
- (void) onPushAccepted:(PushNotificationManager *)pushManager withNotification:(NSDictionary *)pushNotification;

@interface PushNotificationManager

//Initializes Push Notifications Manager
+ (void)initializeAppCode:(NSString *)appCode appName:(NSString *)appName;

//Sends tags to server. Accepts dictionary of tags names/values
- (void) setTags: (NSDictionary *) tags;

//Returns push notifications token
- (NSString *) getPushToken;

//gets apn payload from the notification
- (NSDictionary *) getApnPayload:(NSDictionary *)pushNotification;

//gets user data from the push payload
- (NSString *) getCustomPushData:(NSDictionary *)pushNotification;

//send geolocation to the server for the geo pushes
- (void) sendLocation: (CLLocation *) location;