【问题标题】:How to handle remote notification with background mode enabled如何在启用后台模式的情况下处理远程通知
【发布时间】:2017-08-05 03:31:18
【问题描述】:

我构建的应用启用了后台模式,并且应用获取的推送通知有效负载具有“内容可用”键。

此设置导致didReceiveRemoteNotification 被调用每次应用程序都会收到推送通知,这意味着如果我在应用程序处于后台时收到 3 个推送通知 - 该函数将触发 3时间和里面的代码会在应用程序applicationDidBecomeActive时执行@

我最大的问题是无法知道用户是点击了推送系统警报还是点击了应用程序图标以将应用程序从后台带入,因为无论对于用户的操作,didReceiveRemoteNotification 将触发。

有没有办法确定用户点击了系统警报?

还有这个:http://samwize.com/2015/08/07/how-to-handle-remote-notification-with-background-mode-enabled/ 和其他答案 似乎没有帮助

【问题讨论】:

    标签: ios push-notification remote-notifications background-mode uibackgroundmode


    【解决方案1】:
    For app is background push 
    - (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
        }
    }
    
    For app is terminate state
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
        if (launchOptions != nil) {
             // Launched from push notification
             NSDictionary *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
    
        }
    }
    

    【讨论】:

    • 尊敬的先生,很遗憾,您的回答无法解决我的问题,因为正如我的问题所述,通常无法区分用户点击通知警报和didReceiveRemoteNotification。因为启用了 BackgroundMode didReceiveRemoteNotification 会为收到的每个推送通知调用。因此,如果我得到 3 次推送并且应用程序在后台,并且我点击应用程序 icon,则 didReceiveRemoteNotification 被称为 THREE TIMES
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2020-11-11
    • 2017-03-01
    相关资源
    最近更新 更多