加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xcode – 选择推送通知横幅时调用的方法

发布时间:2020-12-14 17:37:51 所属栏目:百科 来源:网络整理
导读:我有一个推送通知,我发送给用户,我希望能够在他们点击它时采取行动.我知道如果应用程序位于前台,后台,或者用户点击通知中心的警报,则在应用委托中调用以下方法: - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDiction
我有一个推送通知,我发送给用户,我希望能够在他们点击它时采取行动.我知道如果应用程序位于前台,后台,或者用户点击通知中心的警报,则在应用委托中调用以下方法:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo

但是,如果应用程序未启动且用户在通知到达后立即点击通知横幅,则此方法似乎不会被调用.在这种情况下,我需要采用不同的方法吗?他们的其他情况是否也应该实施其他方法?

解决方法

如果您在单击通知横幅时未启动应用程序,则您将在应用程序中收到NSDictionary:didFinishLaunchingWithOptions:.

然后你可以做这样的事情:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  NSDictionary *pushDict = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
  if(pushDict)
  {
    [self application:application didReceiveRemoteNotification:pushDict];
  }
}

此外,在您的应用程序:didReceiveRemoteNtification:方法中,您可以测试您的应用程序在收到通知时是否处于非活动状态,如下所示:

-(void)application:(UIApplication *)app didReceiveRemoteNotification:(NSDictionary *)userInfo
{
  if([app applicationState] == UIApplicationStateInactive)
  {
    NSLog(@"Received notifications while inactive.");
  }
  else
  {
    NSLog(@"Received notifications while active.");
  }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读