2015-01-07 2 views
6

Я реализовал систему push-уведомлений в своем приложении с использованием Parse.com, и все работает отлично!Push Уведомления: нет звука

Моя единственная проблема заключается в том, что при поступлении уведомления: он не воспроизводит звук!

Я иду в настройки (в моем планшете), под извещениями, я вижу это:

enter image description here

Как вы видите «звук» и «знак» выключен. Если я включу их, тогда, когда появится push-уведомление: оно воспроизводит звук!

Итак ... Я бы хотел, чтобы при установке моего приложения эти 2 варианта по умолчанию TRUE.

Возможно ли это? Как я могу это сделать?

Я работаю в Swift, и это мой код до сих пор:

метод didFinishLaunchingWithOptions

var pushSettings: UIUserNotificationSettings = UIUserNotificationSettings(forTypes: UIUserNotificationType.Sound | UIUserNotificationType.Alert | UIUserNotificationType.Badge , categories: nil) 
    application.registerUserNotificationSettings(pushSettings) 
    application.registerForRemoteNotifications() 

Большое спасибо за помощь мне

ответ

0

Подобно тому, что у вас есть для UIUserNotificationSettings, попробуйте его для RemoteNotification.

Например, в Objective-C:

[[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)]; 
+0

В Swift является: применение ,registerForRemoteNotifications(), и он делает то, что вы имеете в виду, но не меняет ситуацию :) – ernestocattaneo

4
UIApplication.sharedApplication().registerUserNotificationSettings(UIUserNotificationSettings(forTypes: UIUserNotificationType.Badge | UIUserNotificationType.Sound | UIUserNotificationType.Alert, categories: nil)) 

вы должны установить SoundName и потому, что по умолчанию нет звука:

Для этого свойства укажите имя файла (включая расширение) звукового ресурса в главном комплекте приложения или UILocalNotificationDefaultSoundName, чтобы запросить систему по умолчанию звук. Когда система выводит предупреждение для локального уведомления или значки приложения значка приложения, он воспроизводит этот звук. Значение по умолчанию - nil (нет звука ). Звуки, длившиеся более 30 секунд, не поддерживаются. Если вы указываете файл со звуком, который воспроизводится более 30 секунд, вместо него воспроизводится звук по умолчанию .

yourNotification.soundName = UILocalNotificationDefaultSoundName 

soundName

для удаленных уведомлений вам нужно использовать The Notification Payload

+0

Спасибо за информацию! теперь это имеет смысл ... но извините, но где я помещаю этот код? (yourNotification.soundName = UILocalNotificationDefaultSoundName) thanksss – ernestocattaneo

+0

http://stackoverflow.com/questions/27348209/user-set-time-for-notification-in-swift/27349421#27349421 –

+0

В моем диспетчере просмотра? Странно .. и я говорю о remoteNotification .. не местный .. Infact нет UIRemoteNotification ... что вы говорите? – ernestocattaneo

0

Я предполагаю, что это является проблемой вы столкнулись только на этом точном устройстве. Попробуйте еще раз и посмотрите, не отличается ли это.

0

Если вы хотите играть в стандартный звук IOS для уведомления, вам необходимо установить content.sound в UNNotificationSound.default() Вы можете сделать это в вашей функции график, как я сделал здесь:

func schdule(date:Date,repeats:Bool)->Date?{ 
    let content = UNMutableNotificationContent() 
    content.sound = UNNotificationSound.default() 
    content.title = "Title" 
    content.body = "blablablabla" 
    content.setValue("YES", forKeyPath:"shouldAlwaysAlertWhileAppIsForeground") 

    let trigger = UNCalendarNotificationTrigger(dateMatching: yourDateComponents,repeats: repeats) 
    let request = UNNotificationRequest(identifier: "TestNotification", content: content, trigger: trigger) 

    UNUserNotificationCenter.current().add(request) { (error:Error?) in 
     if error == nil { 
      print("Notification Schduled",trigger.nextTriggerDate()?.formattedDate ?? "Date nil") 
     } else { 
      print("Error schduling a notification",error?.localizedDescription ?? "") 
     } 
    } 
    return trigger.nextTriggerDate() 
} 
+0

Вам нужно добавить это в файл NotificationManager Swift, если вы его создали. В противном случае я не могу вам помочь – Void2g

Смежные вопросы