2016-03-04 169 views
1

使用後端推送推送通知,並且我的設備已成功接收它們。但是,當我嘗試設置消息,我添加到我的項目一個MP3的「IOS聲」參數,它不能播放任何聲音:自定義聲音不能播放推送通知

enter image description here

在這裏,the Backendless docs它說,設置「IOS聲音「可以執行以下操作:

設置聲音通知在設備上播放的URL或 用於播放聲音的字節數組。

我無法弄清楚我做錯了什麼。嗯......

+0

我能夠在用戶當前在應用中時播放聲音/通過引用AppDelegate的didReceiveRemoteNotification:方法中userInfo字典中的「ios-sound」值打開應用。但是,當應用程序關閉或在後臺時聲音不起作用。 – vikzilla

+0

它不是'ios-sound',只是'sound',而'mp3'文件不是Apple的聲音文件擴展名,它們只支持'caf,aiff,...'將文件轉換爲帶有iTunes的文件,然後你可以使用它 – Tj3n

+0

@ Tj3n它確實是「ios-sound」。我通過從didReceiveRemoteNotification中註銷userInfo來確認這一點。然而,現在唯一的問題是在應用程序未打開/在後臺播放聲音/響應推送通知。另外,我不知道你的意思是不被支持的MP3;它發揮得很好,我過去曾多次使用它。 – vikzilla

回答

2

除了我已經在做的registerForRemoteNotifications()之外,通過調用registerUserNotificationSettings解決了問題。

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
    backendless.initApp(APP_ID, secret:SECRET_KEY, version:VERSION_NUM) 

    //NEEDED TO DO THE FOLLOWING TWO LINES 
    let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil) 
    UIApplication.sharedApplication().registerUserNotificationSettings(settings) 

    UIApplication.sharedApplication().registerForRemoteNotifications() 

    return true 
    } 

我之所以沒有要求,這是因爲之前的Backendless Docs說,簡單的調用.registerForRemoteNotifications()覆蓋警報,徽章,和聲音。但是,這似乎是不正確的。

2

如果你是烏爾設備上成功recieving通知, 則可能是機會,您的音頻文件較大

自定義聲音必須在30秒內播放時。如果自定義聲音超過此限制,則會播放默認的系統聲音,因此請確保您的自定義聲音小於30秒。

您的音頻數據必須位於aiff,wav或caf文件中。

服務器上的文件名和包中的文件名應該是相同的。只需將您的mp3轉換爲其中一種格式,然後只在應用處於非活動狀態時播放聲音。

+0

該文件是約1秒長 – vikzilla