2015-04-06 255 views
-1

我正在做一個應用程序。在那個應用程序中,我使用APNS.My服務器將發送通知給APNS.And APNS轉發通知給devices.Total過程是好的。它的工作正常。但我想要Apple推送通知構造

-get the conformation from APNS whether device received the notification or not to my server. 

    -And how to know notification received by device when we open the application by touching the application icon not swipe the notification. 

回答

1

APNS服務是盡力而不是保證交付。實際上沒有任何方法可以瞭解哪些通知已交付。

但是,您可以瞭解失敗的通知 - 但那是更多的是與被卸載或推送通知的應用程序關閉設備本身: https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/CommunicatingWIthAPS.html

這可能是你可以通過獲得最接近APNS。

否則,我會建議在應用程序啓動時進行某種類型的電話回撥打電話,以查詢服務器應該收到的信息,以便您可以正確使用狀態。

+0

這件事SI知道啊,我的問題是different.Please檢查一次。 – 2015-04-06 12:06:48

0

對於第一個,APNS不提供設備是否收到通知的任何回調。 如果你想要的話,你可以在你的設備上實現一些東西,告訴你的服務器收到通知。

對於第二個,你可以從這段代碼中獲得一些幫助。當應用程序在後臺從this answer.

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 
{ 
    if (application.applicationState == UIApplicationStateInactive || application.applicationState == UIApplicationStateBackground ) 
    { 
     //opened from a push notification when the app was on background 
    } 
} 

更多幫助被調用。如果你想獲得信息,這由開始推送通知的應用程序,你需要使用下面的代碼,在您的didFinishLaunchingWithOptions

UILocalNotification *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; 
if (notification) { 
    NSLog(@"app recieved notification from remote%@",notification); 
    [self application:application didReceiveRemoteNotification:(NSDictionary*)notification]; 
}else{ 
    NSLog(@"app did not recieve notification"); 
} 
+0

didreceiveRemoteNotification方法會在我們滑動通知時觸發嗎? – 2015-04-06 12:08:39

+0

是啊,有2種方法,檢查我更新的答案。 – 2015-04-06 12:11:46

+0

是的你說的是正確的。但我想打開我的應用程序,而不用刷卡通知。我可以在應用程序圖標上點擊並打開應用程序。當時我想知道有關通知。 – 2015-04-06 12:17:06