1

我在iOS應用程序中遇到了一個我從未見過的奇怪問題。在應用程序中收到iOS主推送通知,但不在主屏幕上收到

當用戶在應用程序中時,推送通知即將通過。在接收到推送通知時,當在AppDelegate中觸發正確的方法時,我有邏輯繪製自定義視圖。

但是,如果用戶退出應用程序到主屏幕,iOS不會再顯示該應用程序的任何推送通知。我的理解是,這部分是在操作系統級別處理的。它應該自動設置徽章號碼並顯示用戶可以從推送通知中跳入應用程序的彈出窗口。

任何想法?

回答

1

這發生在我身上,因爲我從服務器發送錯誤的推送。我正在使用Parse並省略了我的JSON有效負載上的alert鍵。這是一個捲曲的腳本,結束了對我的工作:

#!/bin/sh 

curl -X POST \ 
-H "X-Parse-Application-Id: MY_APP_ID" \ 
-H "X-Parse-REST-API-Key: MY_API_KEY" \ 
-H "Content-Type: application/json" \ 
-d '{ 
    "where": { 
    "userguid": "some-user-id-goes-here" 
    }, 
    "data": { 
    "alert": "OH HI THERE", 
    "badge": "0", 
    "content-available": "1", 
    "notificationtype": "SOME_ARBITRARY_KEY" 
    } 
}' \ 
https://api.parse.com/1/push 
1

蘋果改變iOS的方式推送通知請求權限8.

好像你是部分有你收到推送當你的應用程序是打開,但這一點是從iOS SDK文檔中提取的。

如果您希望應用程序的推送通知顯示警報,播放聲音或執行其他面向用戶的操作,則必須調用registerUserNotificationSettings:方法來請求要使用的通知類型。如果您不調用該方法,則系統會以靜默方式將所有推送通知傳送到您的應用程序。由於註冊過程考慮了用戶的首選通知設置,因此請求訪問面向用戶的通知類型也不保證它們將被授予。要找出可用的通知設置,請​​使用currentUserNotificationSettings方法。

所以看起來你的通知沒有權限顯示給用戶,並悄悄地發送到應用程序。

無論如何,如果你可以粘貼你的代碼將有助於更準確的答案。

0

這是一個推送通知的示例。如果現場警報爲空,則推送通知將不會顯示橫幅。當你進入應用程序時,它會觸發「didReceivePushNotification」。也許問題是警報字段是空的。我使用這個工具來模擬推送。 https://github.com/noodlewerk/NWPusher

{ 
    "aps" : { 
     "alert" : "You got your emails.", 
     "badge" : 9, 
     "sound" : "bingbong.aiff" 
    }  
} 
相關問題