2

我正在尝试确定UIApplication didReceiveLocalNotification:. 如果用户在应用处于非活动状态时单击通知,我应该将他们带到相应的 UI 页面。否则,如果用户只是打开应用程序而没有点击通知,我应该让他们留在他们离开的 UI 页面中。

但是,由于是我自己安排的,所以有一个小问题UILocalNotification

[[UIApplication sharedApplication] scheduleLocalNotification:scheduledAlert];

所以每次被iOS触发时,当我手动点击状态栏上的通知时,它会调用与回调相同的委托方法:

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

我尝试了一些棘手的技巧,例如在应用程序处于非活动模式时计算触发时间,计数 1 表示 iOS 触发,计数 2 表示用户点击,以及相关计数管理代码。

但我不认为这可能是最佳做法。我检查了具有相同功能的 iOS 消息应用程序。如果您将应用程序置于非活动模式,例如向下滚动状态栏,那么它可以UILocalNotification通过您的触摸确定是(并会打开文本编辑模式)或者只是您返回应用程序(保持之前的状态) .

如果你们能告诉我最好的解决方案是什么,我将不胜感激!

4

2 回答 2

0

我使用了一个自定义键值对,我设置了一个 NSMutableDictionary,然后我将它分配给 UILocalNotification.userInfo,以告诉不同的场景。

于 2013-05-17T20:23:27.437 回答
-1

我检查应用程序状态,以便仅在我来自后台时处理通知:

UIApplicationState state = [application applicationState];
if (state == UIApplicationStateInactive) {
    // Your  Code Here
} else {

}
于 2014-10-01T05:02:58.997 回答