2015-01-07 18 views
6

Wprowadziłem system powiadomień push w mojej aplikacji przy użyciu Parse.com i wszystko działa świetnie!Powiadomienia push: brak dźwięku

Jedynym moim problemem jest to, że po nadejściu powiadomienia: nie odtwarza żadnego dźwięku!

przejść do ustawień (w moim tablecie), na podstawie zgłoszeń, widzę to:

enter image description here

Jak widać „dźwięku” a „odznaka” są wyłączone. Jeśli je włączę, gdy nadejdzie powiadomienie push: odtwarza dźwięk!

Więc ... Chciałbym, aby po zainstalowaniu aplikacji te 2 opcje miały domyślnie wartość PRAWDA.

Czy to możliwe? Jak mogę to zrobić?

pracuję w Swift i to jest mój kod do tej pory:

metoda didFinishLaunchingWithOptions

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

dziękuję za pomoc mi

Odpowiedz

0

podobne do tego, co masz do UIUserNotificationSettings, wypróbuj go dla RemoteNotification.

Na przykład, w Objective-C:

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

W Swift jest: stosowanie .registerForRemoteNotifications() i robi to, co masz na myśli, ale nie zmienia sytuacji :) – ernestocattaneo

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

trzeba ustawić SoundName także dlatego, że domyślnie nie ma dźwięku:

dla tego obiektu, należy określić nazwę pliku (włącznie z rozszerzeniem) źródła dźwięku o wartości w głównym pakiecie aplikacji lub UILocalNotificationDefaultSoundName, aby zażądać dźwięku domyślnego systemu . Gdy system wyświetli ostrzeżenie dla lokalnego powiadomienia lub odznaczy ikonę aplikacji, odtworzy ten dźwięk. Domyślna wartość to zero (brak dźwięku ). Dźwięki, które trwają dłużej niż 30 sekund, nie są obsługiwane. Jeśli podasz plik z dźwiękiem, który odtwarza ponad 30 sekund, odtwarzany jest domyślny dźwięk.

yourNotification.soundName = UILocalNotificationDefaultSoundName 

soundName

dla zdalnych powiadomień trzeba użyć The Notification Payload

+0

Dzięki za informację! teraz ma sens ... ale przepraszam, ale gdzie mam umieścić ten kod? (yourNotification.soundName = UILocalNotificationDefaultSoundName) thanksss – ernestocattaneo

+0

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

+0

W moim viewcontroller? Dziwne ... i mówię o zdalnej notyfikacji .. nie lokalnej. W rzeczywistości nie ma UIRemoteNotification ... co mówisz? – ernestocattaneo

0

myślę, że jest to problem stoją tylko na tym właśnie urządzeniem. Wypróbuj go na innym i sprawdź, czy jest inny.

0

Jeśli chcesz grać standardowy dźwięk IOS dla powiadamianiu, trzeba ustawić content.sound do UNNotificationSound.default() Można to zrobić w funkcji harmonogramu jak ja tutaj:

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

Musisz to dodać do pliku Swift NotificationManager, jeśli go utworzyłeś. W przeciwnym razie nie mogę ci pomóc – Void2g

Powiązane problemy