...
Code Block |
---|
| |
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:
(UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)]; |
For IOS 8 and later, the following code should be used:
Code Block |
---|
language | applescript |
---|
linenumbers | true |
---|
|
[[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]]; |
After that point, the user has to accept to receive push messages. If the user accepts and the device is successfully registered to the APNS, the following method is called in AppDelegate:
Code Block |
---|
language | applescript |
---|
linenumbers | true |
---|
|
- (void) application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
NSLog(@"didRegisterForRemoteNotificationsWithDeviceToken");
[[EuroManager sharedManager:@"AppcentIOSTest1"] registerToken:deviceToken];
} |
In the
Status |
---|
subtle | true |
---|
colour | Red |
---|
title | application:didRegisterForRemoteNotificationsWithDeviceToken: |
---|
|
method, deviceToken variable is the generated token by APNS. After receiving this token, registerToken method is called in EuroManager. This token value must be recorded to the EuroMessage system in order to sent messages. In the example, Status |
---|
| |
---|
subtle | true |
---|
colour | Red |
---|
title | AppcentIOSTest1 |
---|
|
value is a code value that is given by EuroMsg for your application.If device takes an error during recording, the following metod informs you the type of error:
Code Block |
---|
language | applescript |
---|
linenumbers | true |
---|
|
- (void) application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
NSLog(@"Registration failed : %@",error.description);
} |
EuroManager instance is activated as below:
Code Block |
---|
language | applescript |
---|
linenumbers | true |
---|
|
EuroManager *euroInstance = [EuroManager sharedManager:@"AppcentIOSTest1"];
[euroInstance setDebug:YES]; |
If the additional parameters of the user are known, they can be added as follows;
Code Block |
---|
language | applescript |
---|
linenumbers | true |
---|
|
euroInstance.userEmail = @"uysalmo@gmail.com";
[euroInstance setTwitterId:@"com90"];
[euroInstance setFacebookId:@"com90"];
[euroInstance setUserLatitude:41.11 andLongitude:29.12];
[euroInstance setAppVersion:@"1.0"];
[euroInstance setUserKey:@"ozanUysalKey"]; |
In any step, if you add a new parameter and want to send it to EuroMsg server, you should call synchronize method.
Code Block |
---|
language | applescript |
---|
linenumbers | true |
---|
|
[[EuroManager sharedManager:@"AppcentIOSTest1"] synchronize]; |
If a push notification arrives, application:didReceiveRemoteNotification method is invoked. The incoming message content should be given to the handlePush method in the EuroManager instance.
Code Block |
---|
language | applescript |
---|
linenumbers | true |
---|
|
- (void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
NSLog(@"didReceiveRemoteNotification : %@",userInfo);
[[EuroManager sharedManager:@"AppcentIOSTest1"] handlePush:userInfo];
} |
If you use a IOS 8 or later, the following method should be called.
Code Block |
---|
language | applescript |
---|
linenumbers | true |
---|
|
- (void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
NSLog(@"didReceiveRemoteNotification:fetchCompletionHandler : %@",userInfo);
[[EuroManager sharedManager:@"AppcentIOSTest1"] handlePush:userInfo completionHandler:completionHandler];
} |
If you use Visilabs in your application and wish to report the push messages to Visilabs, you can use reportVisilabs: method. reportVisilabs: method expects an URL produced by Visilabs SDK and is used as below:
Code Block |
---|
language | applescript |
---|
linenumbers | true |
---|
|
- (void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
NSLog(@"didReceiveRemoteNotification:fetchCompletionHandler : %@",userInfo);
Visilabs *visi = [Visilabs ...]
NSString *pushUrl = [visi getPushURL:@"src" withCampaign:@"cam" withMedium:@"med" withContent:@"con"];
[[EuroManager sharedManager:@"AppcentIOSTest1"] reportVisilabs:pushUrl];
[[EuroManager sharedManager:@"AppcentIOSTest1"] handlePush:userInfo completionHandler:completionHandler];
} |
When an interactive push is sent, the information of which button is clicked by user should be transmitted to EuroMsg side. For this application: Status |
---|
subtle | true |
---|
colour | Red |
---|
title | handleActionWithIdentifier:forRemoteNotification:completionHandler: |
---|
|
method in the Status |
---|
subtle | true |
---|
colour | Red |
---|
title | AppDelegate |
---|
|
is called as below:
Code Block |
---|
language | applescript |
---|
linenumbers | true |
---|
|
- (void) application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forRemoteNotification:(NSDictionary *)userInfo completionHandler:(void (^)())completionHandler {
NSLog(@"push clicked : %@ %@",userInfo,identifier);
[[EuroManager sharedManager:@"AppcentIOSTest1"] handleInteractiveAction:identifier userInfo:userInfo];
if(completionHandler != nil) {
completionHandler(UIBackgroundFetchResultNewData);
}
} |
The variables in the Message class:
Variable | Description |
---|
messageContent | Message |
URL | An optional URL |
params | Custom parameters |
pushType | Push Type |
altURL | Alternate URL |
mediaUrl | Image and Video content URL |
cId | Campaign id |
sound | Sound name |