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

mec*_*don 14 iphone push-notification ios swift

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

kab*_*rai 24

要做到这一点,你需要设置一个可以打开你的app的identifier每一个ViewController,然后检查你payloadlaunchOptions参数application:didFinishLaunchingWithOptions:中的AppDelegate以下是执行此操作的步骤:

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

  2. 通过选择并更改以下值来设置identifieronViewController

设置故事板ID

  1. 使您的推送通知payload使用密钥在其中发送故事板IDidentifier
  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
}
Run Code Online (Sandbox Code Playgroud)


Sat*_*yam 6

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

  • 萨蒂扬,谢谢您的回答,这也是正确的。但是我给了kabiroberai答案,因为他是我问题最完整的解决方案。 (3认同)