2013-10-29 22 views
2

工作怪異我用沉默的通知,當我的手機插入到Xcode中,使用WiFi,並與在application:didReceiveRemoteNotification:fetchCompletionHandler:方法中設置斷點,當我的應用程序在背景,完美的作品。無聲通知,iOS7不帶WiFi

我的服務器每分鐘發送一次無聲通知。這裏是我的有效載荷:

{ 
    aps = 
    { 
     "content-available" = 1; 
    }; 
    "update-location" = 1; 
} 

但是,當我從禁用我的手機的WIFI,它不接受它了(3G正在像往常一樣)。

我得到了相同的行爲時,我沒有插上來的Xcode。

有沒有人有想法,或已經解決了?

+0

通過任何機會而你的本地網絡上運行的服務器? – Mahouk

+0

我嘗試了兩種解決方案:本地和遠程(Windows Azure)。同樣的行爲 – user1147981

+0

我認爲可能的問題是路由器上的端口轉發。我在本地運行服務器,我只能通過3G訪問它。當我使用我的路由器的Wi-Fi時,它不會連接(即使我已啓用NAT環回)。 – Mahouk

回答

0

確保你的服務器的IP地址是在3G accessable。

+0

我收到所有其他人的推送通知(對於新的聊天消息或其他內容)。我的問題僅限於無聲通知 – user1147981

+0

{ 「aps」= { 「content-available」= 1; }; 「update-location」= 1; }也許你忘了雙引號! – KudoCC

+0

然而,它不是,推notif是從服務器到客戶端,而不是客戶端到服務器 – user1147981

2

我想有可能兩個點,你的情況,

  1. 不要發送太多通知到設備很短的時間跨度內,怎麼APNS緩存只有1消息/設備(如果設備離線)。所以它可以在設備聯機時傳遞消息。我不確定郵件緩存多長時間。

  2. APNS是基於蘋果的服務器,而蘋果並沒有提供有關成功的消息傳遞任何保證。

它很清楚地在蘋果的文檔,它不是100%gauranteed並且也不應被用作這樣

+0

這非常奇怪,因爲如果我執行以下操作:運行我的應用程序(使用3G,並且將它放入背景)。我發出一個無聲的notif,它沒有收到它。如果我在後臺激活我的wifi,我的notif會被接收。你說得對,它似乎是緩存,但爲什麼在3G上,而不是WiFi? – user1147981

+0

需要一些時間冷靜,用正常的推送通知嘗試3g,不要發送從服務器繼續推送,並檢查推送是否到來? –

+0

我只是試過一些東西 - >如果我把「聲音」的應答器放在我的['aps']內容中,我每次都會收到它! – user1147981

3

我會做以下兩件事情先幫我縮小的可能性:

  1. 檢查你所使用的APNS網關。如果您使用的是分發證書,請不要在沙箱APNS網址上觸發您的通知。
  2. 確保您在設備上使用匹配的配置文件。開發概要文件&分發概要文件返回不同的UDID。

另外,正如Viruss mca所說,有時蘋果的服務器存在滯後性。

UPDATE:你還要一個分號在那裏。

aps = 
{ 
    "content-available" = 1; 
};// << Right there. It should be a comma. 
+0

如果我有什麼錯誤,爲什麼它可以與WIFI而不是3g? – user1147981

+0

@ user1147981我注意到可能的語法錯誤。檢查我更新的答案。 – Mahouk

2

解決方法:添加聲音按鍵在無聲的通知內容....