2012-11-12 124 views
6

我有遠程通知設置和工作正常。但是,當收到通知時(當應用程序不在前臺時),我必須播放自定義聲音。我將一個名爲customSound.wav的文件添加到我的應用程序包中,並確保在將其拖放到我的項目中時選擇「添加到目標」(這是正確的方式嗎?)。服務器端:相同的文件名被指定爲「聲音」:「customSound.wav」。在我didReceiveRemoteNotification我正在打印的用戶信息字典,它是未來像這樣:APN自定義通知聲音問題

aps =  
{ 
    alert = "Good Evening Sir"; 
    badge = 1; 
    "custom_filed1" = 1; 
    "custom_field2" = "AAA-BBB-CCC"; 
    name = "Sir Hubert"; 
    sound = default; 
}; 

正如你所看到的,聲音依然是「默認」。我意識到如果找不到聲音指定的聲音,默認聲音播放 - 字典中的聲音值也將是「默認」,或者它應該是有效載荷json中指定的文件名。這些在載荷中指定的順序是重要的。我嘗試了其他線程的建議,但不適合我。我無法顯示JSON,因爲此刻我無法訪問系統。任何關於我可能做錯的建議?

+1

FWIW ANY除* default之外的任何聲音(系統聲音或您自己製作的聲音)被視爲自定義聲音,並且必須手動添加到AppBundle。 – Honey

回答

10

沒有你的聲音鍵應該有你想播放的聲音文件名。

{ 
    aps = 
    { 
    alert = "message"; 
    sound = "sound file name.extension"; 
    badge = 1; 
    }; 
} 

例如: { APS = { 警報= 「消息」; sound =「tone.caf」; }; }

我正在使用此功能並在我的通知中獲得成功的自定義警報; 保持聲音持續時間儘可能小。我做了這個文件格式:AIFF,CAF

如果u想測試通知,然後ü可以試試這個程序https://itunes.apple.com/us/app/easy-apns-provider-push-notification/id989622350?mt=12

我沒有做這個應用程序的任何標誌,但它是很好的測試推送通知

+0

我的意思是說,如果系統無法播放指定的聲音(可以說它找不到文件),那麼鍵「聲音」的值是否會自動更改爲「默認」,或者它應該仍然保持爲「customSound .wav「在userInfo字典中,無論播放與否都有問題。 – pnizzle

+0

是我將自定義聲音添加到項目中的方式嗎? – pnizzle

+0

是的,你正在添加正確的東西,但聲音的關鍵應該有你的自定義聲音的價值,否則它會採取默認和播放 – spider1983