osk*_*kob 7 iphone cocoa-touch
我正在创建一个应用程序来跟踪一些用户定义的间隔重复的提醒.
当警报显示时,我已经这样做了,动作标题显示为"续订".单击此按钮时,应用程序将打开,此处我想创建下一个提醒,但问题是我不知道应用程序是否打开,因为点击了通知按钮或者在应用程序运行时触发了通知.
有人有任何想法吗?
osk*_*kob 13
我不知道我的问题是否不清楚,但似乎我得到了4个不同的答案,这些答案都误解了我的问题:P
但是,我发现didReceiveLocalNotivication发生在willEnterForeground和didBecomeActive之间,所以我这样做是为了确定应用程序是否已经打开:
-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
NSLog(@"Opened from notification? %@", wasInactive ? @"yes!" : @"no!");
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
wasInactive = YES;
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
wasInactive = NO;
}
Run Code Online (Sandbox Code Playgroud)
Rob*_*ill 13
执行此操作的"正确"方法是在应用程序中检查NSApplication的applicationState属性:didReceiveRemoteNotification:您的委托方法.
从处理本地通知的文档:
iOS注意:在iOS中,您可以确定是否由于用户点击操作按钮而启动了应用程序,或者是否通过检查应用程序状态将通知传递给已在运行的应用程序.在委托的应用程序实现中:didReceiveRemoteNotification:或application:didReceiveLocalNotification:方法,获取applicationState属性的值并对其进行评估.如果值为UIApplicationStateInactive,则用户点击操作按钮; 如果值为UIApplicationStateActive,则应用程序在收到通知时位于最前端.
这类似于使用applicationWillEnterForeground和applicationDidBecomeActive中设置的标志但具有系统支持的解决方案.
| 归档时间: |
|
| 查看次数: |
3660 次 |
| 最近记录: |