繁体   English   中英

推送通知到达时未播放自定义声音

[英]Custom sound not played when push notification arrives

我在为我的应用设置消息声音时遇到麻烦。

我目前正在处理推送通知。 通知工作正常。但是当推送通知到达时,我无法添加自定义声音。 将有效负载数据接收到服务器。 在其中的推送通知委托方法中添加自定义铃声。

Code

  - (BOOL)application:(UIApplication *)application       didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    UIUserNotificationType userNotificationTypes = (UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound);
    UIUserNotificationSettings *setting = [UIUserNotificationSettings settingsForTypes:userNotificationTypes categories:nil];
    [application registerUserNotificationSettings:setting];
    [application registerForRemoteNotifications];


    NSDictionary *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];

    if (notification) {
        NSString *cancelTitle = @"Reject";
        NSString *showTitle = @"Accept";
        NSString *message = @"This is Testing";
        UIAlertView *alertView = [[UIAlertView alloc]      initWithTitle:@"Order"
                                                            message:message
                                                           delegate:self
                                                  cancelButtonTitle:cancelTitle
                                                  otherButtonTitles:showTitle, nil];
        [alertView show];
    } else {
        // from the springboard
    }

    return YES;
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
        UIApplicationState state = [application applicationState];
       if (state == UIApplicationStateActive ) {

           NSString *ring = [NSString stringWithFormat:@"%@",[[userInfo objectForKey:@"aps"] objectForKey:@"sound"]];

           NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/%@",[[NSBundle mainBundle] resourcePath],ring]];

           NSError *error;

           audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
           audioPlayer.numberOfLoops = 0;
           [audioPlayer play];


            NSString *cancelTitle = @"Close";
            NSString *showTitle = @"Show";
            NSString *message = @"This is Testing";
            UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Some title"
                                                                message:message
                                                               delegate:self
                                                      cancelButtonTitle:cancelTitle
                                                      otherButtonTitles:showTitle, nil];
            [alertView show];
          }else{



          }

请使用此代码,它将对您有所帮助

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
    {
            UIApplicationState state = [application applicationState];
           if (state == UIApplicationStateActive ) {

          //     NSString *ring = [NSString stringWithFormat:@"%@",[[userInfo objectForKey:@"aps"] objectForKey:@"sound"]];

         //      NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/%@",[[NSBundle mainBundle] resourcePath],ring]];

           //    NSError *error;

          //     audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
         //      audioPlayer.numberOfLoops = 0;
         //      [audioPlayer play];

         NSString *path =[[NSBundle mainBundle] pathForResource:@"circuit___ios_7" ofType:@"mp3"];
              SystemSoundID soundID;
                AudioServicesCreateSystemSoundID((__bridge CFURLRef)[NSURL fileURLWithPath:path], &soundID);

         AudioServicesPlaySystemSound(soundID);

                NSString *cancelTitle = @"Close";
                NSString *showTitle = @"Show";
                NSString *message = @"This is Testing";
                UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Some title"
                                                                    message:message
                                                                   delegate:self
                                                          cancelButtonTitle:cancelTitle
                                                          otherButtonTitles:showTitle, nil];
                [alertView show];
              }else{



              }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM