2014-11-17 6 views
11

Il dispositivo è in esecuzione su iOS 8.1iOS 8.1 Notifica push Nessun suono

Sto usando xCode 6.1 per compilare l'app.

Questo è il codice per iscriversi spinta

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

Funziona bene come i registri app con il server.

Anche i file PEM vengono eseguiti correttamente poiché è possibile inviare una push al dispositivo utilizzando l'APN sandbox.

Quando stampo il mio JSON payload da didReceiveRemoteNotification ottengo questo:

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

Il problema è quando ricevo la mia spinta (anche quando il dispositivo è impostato a forte) non gioca un suono.

Dalla mia conoscenza, se non si specifica un suono nel payload JSON, dovrebbe riprodurre il suono del sistema operativo predefinito.

Nelle impostazioni di notifica dell'app sul telefono, l'audio è attivato per impostazione predefinita perché quando registro si specifica UIUserNotificationTypeSound.

Qualcun altro ha riscontrato questo problema?

+0

Non si dovrebbe rilevare la versione del tipo: 'if ([[[UIDevice currentDevice] VersioneSistema] floatValue]> = 8.0)', ma amo piuttosto verificare se la classe è disponibile: 'if ([ UIUserNotificationSettings class]) ' – rckoenes

risposta

36

Secondo Apple's documentation è necessario specificare default se si desidera la notifica di comando predefinito per essere giocato:

Il nome di un file audio nel pacchetto app. L'audio in questo file è riprodotto come avviso. Se il file audio non esiste o il valore predefinito è specificato come valore, viene riprodotto il suono di avviso predefinito. L'audio deve trovarsi in uno dei formati di dati audio compatibili con i suoni di sistema ; vedere Preparazione dei suoni di avviso personalizzati per i dettagli.

L'output JSON finale:

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

sì ho il suono e vibra in questo modo .. ma voglio solo il suono. No vibra .. di come posso fare? grazie x in anticipo ... –

+0

La documentazione collegata non è più lì. – qqx

9

Si dovrebbero modificare output del server JSON a questo. default è il tipo di suono della notifica sul telefono.

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

sì ho il suono e vibra in questo modo .. ma voglio solo il suono. No vibra .. di come posso fare? grazie x in anticipo ... –

3

per la riproduzione del suono, quando la nostra applicazione riceve la notifica spingere il vostro must JSON contiene l'attributo del suono. così JSON come questo

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

Dovresti formattare il codice, in modo che sia più leggibile. – etalon11

+0

@ etalon11 terrò a mente. grazie. –