当用户点击iOS Swift的推送通知时,在特定视图中打开应用程序

时间:2015-11-14 08:15:32

标签: ios iphone swift push-notification

我的应用允许向用户发送远程推送通知。当用户点击推送通知时,如何在特定视图控制器中打开它?我希望应用程序打开并导航到特定的视图控制器,具体取决于收到的推送通知。

3 个答案:

答案 0 :(得分:23)

要执行此操作,您需要为可能打开您的应用的每个identifier设置ViewController,然后检查payload launchOptions参数中的application:didFinishLaunchingWithOptions: {1}} AppDelegate以下是执行此操作的步骤:

  1. PFPush中,使用setData使用标识符为您的有效负载添加密钥:notification.setData(["alert":"your notification string", "identifier":"firstController"])

  2. 通过选择identifier并更改以下值来设置每个ViewController

  3. Setting the Storyboard ID

    1. 让您的推送通知使用密钥payload
    2. 在其identifier中发送情节提要ID
      1. 检查应用程序中的ID:didFinishLaunchingWithOptions:在函数末尾添加以下内容:
      if let payload = launchOptions?[UIApplicationLaunchOptionsRemoteNotificationKey] as? NSDictionary, identifier = payload["identifier"] as? String {
          let storyboard = UIStoryboard(name: "Main", bundle: nil)
          let vc = storyboard.instantiateViewControllerWithIdentifier(identifier)
          window?.rootViewController = vc
      }
      

答案 1 :(得分:5)

在AppDelegate中,您将获得一个委托回调" didFinishLoading"或" didReceivePushNotification"方法(基于您的应用程序在后台或前台)。在该方法中获取最顶层视图控制器的实例,然后创建要显示的特定视图控制器并从最顶层的视图控制器显示/推送。

答案 2 :(得分:0)

 UILocalNotification *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
    if (notification)
    {
        [self application:application didReceiveRemoteNotification:(NSDictionary*)notification];
    }