2014-11-17 9 views
11

Das Gerät läuft unter iOS 8.1iOS 8.1 Push-Benachrichtigung Kein Sound

Ich verwende xCode 6.1, um die App zu kompilieren.

Dies ist der Code für Push mit dem Server wie die App-Register registrieren

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) 
{ 
    [application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]]; 
    [application registerForRemoteNotifications]; 
} 
else 
{ 
    [application registerForRemoteNotificationTypes: (UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)]; 
} 

Es funktioniert gut.

Die PEM-Dateien sind auch richtig gemacht, wie ich einen Push an mein Gerät mit Sandbox APN senden kann.

Wenn ich meine JSON Nutzlast von didReceiveRemoteNotification drucken bekomme ich diese:

{ 
    aps =  { 
     alert = "Test Push Message"; 
    }; 
} 

Das Problem ist, wenn ich meine Push erhalten (auch wenn das Gerät zu laut eingestellt ist) es keinen Ton spielen.

Wenn Sie in den JSON-Nutzdaten keinen Sound angeben, sollte er meines Wissens den Standard-OS-Sound wiedergeben.

In meinen App-Benachrichtigungseinstellungen auf dem Telefon ist der Ton standardmäßig aktiviert, da ich bei der Registrierung UIUserNotificationTypeSound angeben.

Wer ist sonst noch auf dieses Problem gestoßen?

+0

sollten Sie nicht erkennen, die Version wie: 'if ([[[UIDevice currentDevice] Systemversion] floatvalue]> = 8,0)', aber ich mag eher prüfen, ob die Klasse zur Verfügung: 'if ([ UIUserNotificationSettings Klasse]) ' – rckoenes

Antwort

36

Nach Apple's documentation müssen Sie default angeben, wenn Sie auf den Standard Push-Benachrichtigung soll gespielt werden:

Der Name einer Sounddatei in der App-Bundle. Der Sound in dieser Datei wird als Warnung wiedergegeben. Wenn die Audiodatei nicht vorhanden ist oder der Standardwert als Wert angegeben ist, wird der standardmäßige Alarmton wiedergegeben. Der Ton muss in einem der Audiodatenformate sein, die mit Systemklängen kompatibel sind; Weitere Informationen finden Sie unter Vorbereiten benutzerdefinierter Warntöne.

Die endgültige JSON Ausgabe:

{ 
    "aps" :  { 
     "alert" : "Test Push Message", 
     "sound" : "default" 
    }; 
} 
+0

Ja, ich habe Sound und vibrieren auf diese Weise .. aber ich will nur Ton. Nicht vibrieren .. als wie kann ich tun? danke x im voraus ... –

+0

Die verlinkte Dokumentation ist nicht mehr da. – qqx

9

Sie sollten Server JSON Ausgabe an diese ändern. default ist der Typ der Benachrichtigung auf Ihrem Telefon.

{ 
    "aps": { 
     "alert": "test", 
     "sound": "default" 
    } 
} 
+0

Ja, ich habe Sound und Vibration auf diese Weise .. aber ich will nur Sound. Nicht vibrieren .. als wie kann ich tun? danke x im voraus ... –

3

Zum Abspielen von Sound, wenn unsere App Push-Benachrichtigungen empfängt, muss Ihr JSON Sound-Attribut enthalten. so json wie diese

{ 
    "aps":{ 
    "alert" :"your test message", 
    "sound":"default" 
     }; 
} 
+0

Sie sollten den Code formatieren, damit er besser lesbar ist. – etalon11

+0

@ etalon11 ich werde es mir merken. Danke. –

Verwandte Themen