【问题标题】:iOS Push Notifications FlowiOS 推送通知流程
【发布时间】:2017-03-27 02:07:20
【问题描述】:

我正在处理推送通知流程,但不知道如何处理它。我需要一个简单的解释,当推送通知到来时,调用哪个委托

  1. 当用户点击推送通知标签时
  2. 当用户在推送通知到来时点击应用图标时

我无法维持我的应用程序状态,对我来说流程应该是这样的:

  1. 当用户点击推送通知标签时:它应该打开一个特定的视图控制器
  2. 当用户在推送通知时点击应用程序图标时:它应该从应用程序在后台打开相同的视图控制器

如何在 Xcode 8.1/iOS 10.1.1 中实现这一点?

我也在使用后台模式远程通知和后台获取。

【问题讨论】:

    标签: ios


    【解决方案1】:

    在 AppDelegate.m 中使用它来检查用户点击图标的位置

    - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
        //Handle notification when the user click it while app is running in background or foreground.
        if(application.applicationState == UIApplicationStateInactive) {
    
            NSLog(@"Inactive - the user has tapped in the notification when app was closed or in background");
            //do some tasks
    
    
        }
        else if (application.applicationState == UIApplicationStateBackground) {
    
            NSLog(@"application Background - notification has arrived when app was in background");
    
        }
        else {
            NSLog(@"application Active - notication has arrived while app was opened");
    
            //do tasks
    
    
        }
    
    
    }
    

    【讨论】:

    • 这在 iOS 10.1.1 中有效 :),我现在不明白为什么它在 ios 10 中无效
    • 我正在使用后台模式远程通知和后台获取。所以 didReceiveRemoteNotification: withCompletion 我有什么改变吗??
    【解决方案2】:

    当推送通知从服务器发送应用端的委托调用,但您必须通过添加 registerForPushNotifications 从应用端注册。

      - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
      { 
    
        //Handle notification when the user click it while app is running in background or foreground.
    
    
        //Where userinfo is a dict. It has the data sent from server
    
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-19
      • 2011-08-07
      • 1970-01-01
      • 2015-04-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多