How do i get my push notification to play a sound as soon as it is received?

App A is pushing a notification to App B like so:

NSDictionary *data = @{
                           @"alert" : @"Purchase Successful! 1 Remove Ads",
                           @"badge" : @"Increment",
                           @"sounds" : @"Bell.caf",
    PFPush *push = [[PFPush alloc] init];
    [push setChannels:@[ @"Mets" ]];
    [push setData:data];
    [push sendPushInBackground];

App B Receives the push notification like so:

  • UIPageViewController returns no Gesture Recognizers in iOS 6
  • Audio playback lock screen controls not displaying on iPhone
  • Launch iOS simulator from Xcode and getting a black screen, followed by Xcode hanging and unable to stop tasks
  • Set auto increment in Core data iOS
  • iOS app camera access denied iOS 9.1(black screen) ****
  • Unwind segue doesn't work in Swift 3 and iOS 10
  • //
    //  ParseStarterProjectAppDelegate.m
    //  Copyright 2011-present Parse Inc. All rights reserved.
    #import <Parse/Parse.h>
    // If you want to use any of the UI components, uncomment this line
    // #import <ParseUI/ParseUI.h>
    // If you are using Facebook, uncomment this line
    // #import <ParseFacebookUtils/PFFacebookUtils.h>
    // If you want to use Crash Reporting - uncomment this line
    // #import <ParseCrashReporting/ParseCrashReporting.h>
    #import "ParseStarterProjectAppDelegate.h"
    #import "ParseStarterProjectViewController.h"
    @implementation ParseStarterProjectAppDelegate
    #pragma mark -
    #pragma mark UIApplicationDelegate
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Enable storing and querying data from Local Datastore. Remove this line if you don't want to
    // use Local Datastore features or want to use cachePolicy.
    [Parse enableLocalDatastore];
    // ****************************************************************************
    // Uncomment this line if you want to enable Crash Reporting
    // [ParseCrashReporting enable];
    // Uncomment and fill in with your Parse credentials:
     [Parse setApplicationId:@"APPIDHERE" clientKey:@"CLIENTKEYHERE"];
    // If you are using Facebook, uncomment and add your FacebookAppID to your bundle's plist as
    // described here:
    // [PFFacebookUtils initializeFacebook];
    // ****************************************************************************
    [PFUser enableAutomaticUser];
    PFACL *defaultACL = [PFACL ACL];
    // If you would like all objects to be private by default, remove this line.
    [defaultACL setPublicReadAccess:YES];
    [PFACL setDefaultACL:defaultACL withAccessForCurrentUser:YES];
    // Override point for customization after application launch.
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
    if (application.applicationState != UIApplicationStateBackground) {
        // Track an app open here if we launch with a push, unless
        // "content_available" was used to trigger a background push (introduced in iOS 7).
        // In that case, we skip tracking here to avoid double counting the app-open.
        BOOL preBackgroundPush = ![application respondsToSelector:@selector(backgroundRefreshStatus)];
        BOOL oldPushHandlerOnly = ![self respondsToSelector:@selector(application:didReceiveRemoteNotification:fetchCompletionHandler:)];
        BOOL noPushPayload = ![launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
        if (preBackgroundPush || oldPushHandlerOnly || noPushPayload) {
            [PFAnalytics trackAppOpenedWithLaunchOptions:launchOptions];
    if ([application respondsToSelector:@selector(registerUserNotificationSettings:)]) {
        UIUserNotificationType userNotificationTypes = (UIUserNotificationTypeAlert |
                                                        UIUserNotificationTypeBadge |
        UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:userNotificationTypes
        [application registerUserNotificationSettings:settings];
        [application registerForRemoteNotifications];
    } else
        [application registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |
                                                         UIRemoteNotificationTypeAlert |
    return YES;
    #pragma mark Push Notifications
    - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
    PFInstallation *currentInstallation = [PFInstallation currentInstallation];
    [currentInstallation setDeviceTokenFromData:deviceToken];
    [currentInstallation saveInBackground];
    [PFPush subscribeToChannelInBackground:@"Mets" block:^(BOOL succeeded, NSError *error) {
        if (succeeded) {
            NSLog(@"ParseStarterProject successfully subscribed to push notifications on the broadcast channel.");
        } else {
            NSLog(@"ParseStarterProject failed to subscribe to push notifications on the broadcast channel.");
    - (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
    if (error.code == 3010) {
        NSLog(@"Push notifications are not supported in the iOS Simulator.");
    } else {
        // show some alert or otherwise handle the failure to register.
        NSLog(@"application:didFailToRegisterForRemoteNotificationsWithError: %@", error);
    - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
    [PFPush handlePush:userInfo];
    if (application.applicationState == UIApplicationStateInactive) {
        [PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo];
    // Uncomment this method if you want to use Push Notifications with Background App Refresh
    //- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
    //    if (application.applicationState == UIApplicationStateInactive) {
    //        [PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo];
    //    }
    #pragma mark Facebook SDK Integration
    // Uncomment this method if you are using Facebook
    //- (BOOL)application:(UIApplication *)application
    //            openURL:(NSURL *)url
    //  sourceApplication:(NSString *)sourceApplication
    //         annotation:(id)annotation {
    //    return [PFFacebookUtils handleOpenURL:url];

    How come I don’t hear any sounds go off when App B receive’s the push notification? No sound is played when the app is closed and the banner notification appears (which I’d like a sound), no sound is played when the app is open and the notification appears (just a vibrate, that’s odd). Why is that and how do I fix it?

    Solutions Collect From Internet About “How do i get my push notification to play a sound as soon as it is received?”

    Do it like this:

     NSDictionary *data = @{
                               @"alert" : @"you daily milk temp",
                               @"badge" : @"Increment",
                               @"sound" : @"super.caf"
        PFPush *pusher = [[PFPush alloc] init];
        [pusher setChannels:@[ @"deviceTemperatureReading" ]];
        [pusher setData:data];
        [pusher sendPushInBackground];

    “super.caf” is a sound file