iOS点击推送通知打开具体的viewcontroller

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS点击推送通知打开具体的viewcontroller相关的知识,希望对你有一定的参考价值。

当用户点击推送通知时,是否可以打开具体的viewcontroller?

我有新闻应用程序,主视图控制器有很多新闻,当用户点击一些新的我打开下一个viewcontroller与此消息的描述。

当用户点击推送通知时,我如何打开第二个视图控制器?

我试图将Notification发送到我的UINavigationController并推送两个控制器,但它不能正常工作,它只打开第一个viewcontroller。

答案

你可以处理你的应用,当你点击本地或推送通知,在你的AppDelegate.m中实现application:didReceiveLocalNotification:application: didReceiveRemoteNotification:方法

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

}

-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {

}

如果您的应用已关闭(不在后台),您可以验证是否收到了通知

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    NSDictionary *userInfo = [launchOptions objectForKey: UIApplicationLaunchOptionsRemoteNotificationKey];
    if ( userInfo != nil )
        [self application:application didReceiveRemoteNotification:userInfo];
}

我不知道你是如何处理你的新闻的,但你可以向你的主视图控制器发布一个通知,告知你已收到通知,传递“id”或新的信息,然后创建你的第二个视图控制器(你需要验证你的MainViewController是否已经在你的NavigationController堆栈中创建了):

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

    [[NSNotificationCenter defaultCenter] postNotificationName:@"IHaveReceivedANotification" object:nil userInfo:userInfo];

}

以上是关于iOS点击推送通知打开具体的viewcontroller的主要内容,如果未能解决你的问题,请参考以下文章

推送通知 - 使用 SceneDelegate 在通知点击时推送 ViewController

在 iOS 10 下使用 FCM 在前台单击推送通知后无法导航到特定的 viewController

点击推送通知后打开页面 Ionic 2 iOS

当应用程序完全关闭时,推送通知点击上的推送 ViewController 将不起作用

推送通知使用有效负载打开正确的页面

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