Avinash
Avinash

Reputation: 823

Silent push notification

Just wanted a confirmation. Does the app ask for user permission if i have used silent push notification service like it use to ask when push notification was used. Any help would be appreciated

Upvotes: 2

Views: 1382

Answers (2)

Bevan
Bevan

Reputation: 342

For silent push you have to set JSON like this (php file),

$body['aps'] = array(
    'sound' => '',
    'content-available' => 1
    );

don't send alert and badge.

In xcode file select target -> capabilities and enable background modes and tick remote notification

in appdelegate.m file just use this message to receive silent push

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))handler
{
    //Success this method will automatically call when device receives push notification
    handler(UIBackgroundFetchResultNewData);
}

// eg code to register for apps
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.

    if ([application respondsToSelector:@selector(registerUserNotificationSettings:)]) {
        UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:(UIRemoteNotificationTypeBadge
                                                                                             |UIRemoteNotificationTypeSound
                                                                                             |UIRemoteNotificationTypeAlert) categories:nil];
        [application registerUserNotificationSettings:settings];
    } else {
        UIRemoteNotificationType myTypes = UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound;
        [application registerForRemoteNotificationTypes:myTypes];
    }

    return YES;
}


#ifdef __IPHONE_8_0
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings
{
    //register to receive notifications
    [application registerForRemoteNotifications];
}

- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forRemoteNotification:(NSDictionary *)userInfo completionHandler:(void(^)())completionHandler
{
    //handle the actions
    if ([identifier isEqualToString:@"declineAction"]){
    }
    else if ([identifier isEqualToString:@"answerAction"]){
    }
}
#endif

- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
{
    NSLog(@"My token is: %@", deviceToken);
}

- (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error
{
    NSLog(@"Failed to get token, error: %@", error);
}

Upvotes: 0

Vrasidas
Vrasidas

Reputation: 2085

No. It's silent, meaning it works in the background, without user confirmation at the time of the notification.

At app install it asks for confirmation like a normal push notification.

Upvotes: 2

Related Questions