【问题标题】:Open a specific tab/view when user receives a push notification当用户收到推送通知时打开特定的选项卡/视图
【发布时间】:2011-10-07 17:45:32
【问题描述】:

我想做类似 Twitter 应用的事情:当有人给我写信时,我会收到推送通知;如果我“在通知上滑动”,应用程序会启动,但不是在正常流中,它会在特定视图中启动,并带有某人写给我的推文!

在我的应用程序中,我有一个类似 RSS 阅读器的东西,当有新消息时,推送通知就会到达。 所以,我想打开“单一新闻视图”,而不是主视图(现在正在发生)。

我能做什么?

谢谢

【问题讨论】:

    标签: iphone ios push push-notification apple-push-notifications


    【解决方案1】:

    你可以做两件事。

    一种是查看UIApplicationDelegate方法的launchOptions字典

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

    查看应用程序是否是通过用户单击通知启动的。如果是这样,那么在该方法中,您可以将适当的视图控制器推送到堆栈上,就像您通常在应用内使用一样。

    如果应用程序已经打开,但在后台,那么同样的理论也适用,但使用 UIApplicationDelegate 方法

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

    有关处理传入通知的信息,请参阅this link

    【讨论】:

    • 这一切都很好,但看起来视图层次结构尚未加载。最好的处理方法是什么?
    • @elsurudo 我有点晚了,但您可以使用 JLRoutes 来处理它,它允许您从任何地方路由到应用程序中的任何视图。请看:github.com/joeldev/JLRoutes
    • 请注意,当应用程序处于前台时强制导航通常是不好的做法。用户当时看不到他收到了通知,但是页面却在未经他同意的情况下突然改变,这非常令人困惑,如果他在其他地方做“重要的事情”,那就太烦人了。话虽如此,如果用户点击通知,则会调用相同的方法,因此您可以在导航之前检查 UIApplicationState
    • 我可以收到通知,但我没有收到它的用户信息。相反,我只收到:▿ Optional<Dictionary<AnyHashable, Any>> ▿ some : 1 element ▿ 0 : 2 elements ▿ key : AnyHashable("NotificationIdentifier") - value : "NotificationIdentifier" - value : 0F99DF81-C721-4A56-850A-13CF74A85547我如何才能看到通知的实际内容?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-13
    • 1970-01-01
    • 2014-01-12
    相关资源
    最近更新 更多