簡體   English   中英

iOS:處理遠程(推送)通知

[英]iOS: Handling Remote (push) Notifications

我正在嘗試通過遠程通知處理所有可能的情況。 我在前台應用程序沒問題-didReceiveRemoteNotification被調用。 問題是當應用程序處於后台狀態時,我收到推送通知。 什么都沒叫。 當應用回到前台時,如何讓用戶知道他有新的遠程通知?

攔截推送通知的唯一方法是用戶在通知中心點擊通知(或從鎖定屏幕滑動應用程序圖標)。

在這種情況下,在應用程序進入前台之前,將調用應用程序委托中的didFinishLaunchingWithOptions方法。 您應該使用NSDictionary launchOptions來確定應用程序是從通知中心啟動還是通過點擊圖標(正常使用)啟動

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    NSDictionary *pushDic = [launchOptions objectForKey:@"UIApplicationLaunchOptionsRemoteNotificationKey"];
    if (pushDic != nil) {
        NSLog(@"Notification");
    }
    else {

    }
}

只需看一下編程指南即可:

如果點擊了操作按鈕(在運行iOS的設備上),則系統將啟動應用程序,並且該應用程序將調用其委托人的應用程序:didFinishLaunchingWithOptions:方法(如果已實現); 它傳入通知有效負載(用於遠程通知)或本地通知對象(用於本地通知)。

當然,如果您的應用程序在后台運行,則不會有任何事情...

如果您的應用未啟動(甚至沒有在后台暫停),則

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

將包含通知有效負載(鍵UIApplicationLaunchOptionsRemoteNotificationKey):

NSDictionary *remoteNotification = [launchOptions objectForKey: UIApplicationLaunchOptionsRemoteNotificationKey];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM