簡體   English   中英

檢測從推送通知打開的應用程序(后台獲取)

[英]detect app opened from push notification (background fetch)

我使用UIBackgroundFetchResult來捕獲推送通知,如下代碼...我使用內容可用性= 1也在后台模式下進行檢測

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)   (UIBackgroundFetchResult))completionHandler {

當應用程序處於活動狀態或后台模式時,推送即將到來並在此處執行,但是當我打開推送時始終無法執行,因為無法進入狀態,我無法檢測到應用是否從推送中打開

 if ( (application.applicationState == UIApplicationStateInactive || application.applicationState == UIApplicationStateBackground)  && (NotiType == 1 || NotiType == 2))
    {

}

您可以通過應用程序委托方法檢查是否從APNS(Apple Push通知服務)啟動了應用程序

application:didFinishLaunchingWithOptions:

您可以在其中檢查是否通過通知啟動了應用程序,

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

    if (launchOptions != nil) {
          // Launched from push notification
          NSDictionary *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];

    }
}

如果您的應用程序在后台運行,則不會調用此方法。 為此,您可以通過這種方式檢查另一種方法,

- (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
    }
}

HTH,享受編碼!

暫無
暫無

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

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