iOS-App開著的時候沒有跳出推送訊息的橫幅(Banner)

之前有介紹推送功能的基本設定,但在接受推送功能時,有一個我們會常常碰到的場景,需要另外處理一下。

App開著的時候沒有跳出Banner

推送通知會有三種狀態,UIApplicationStateBackground、UIApplicationStateInactive、UIApplicationStateActive。

其中Active是我們這次要討論的狀態。

想像一個場景,我們現在開著一個有聊天功能的App,當我們打開聊天窗口和好友正在聊天的時候,有另外一位好友發送了消息過來,這個時候推送通知會告訴你是active狀態下收到的,但是不會在畫面中跳出Banner或者其他類型通知的view

這種設定也很合理,想像一下如果你正在和這個人聊天,他發送了message給你,然後還跳出一個banner,這樣一直跳是有點擾人=_=

收到通知後跳出Banner

所以我們可以通過判斷收到的通知如果是UIApplicationStateActive,就跳出自訂義的View。

TSMessage

 

也可以直接用別人準備好的library,比如TSMessage,上面是提供的其中一個樣式。

TSMessage可以自定義樣式,比如上面的驚嘆號是一個圖案,也可以在右側添加按鈕,如果是通過點擊跳出View給用戶看信息的話,還是推薦不用按鈕的方式,因為那比較符合iOS用戶的習慣。


 

收到通知後播放音效

解決了開著App狀態下推送通知不顯示Banner的問題以後,還有一個細節,就是通常收到通知的時候會有聲音。

在StackOverFlow上看到有人提供了一套iPhone的Wav音效

http://sites.google.com/site/iphonesounds/iPhoneOriginalSystemSounds_WAV.zip

通過添加 <AVFoundation/AVFoundation.h>的方式來播放就可以了,sms-received就是常聽到的消息音效。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *