我正在尝试将我的应用程序更新为iOS 8。在一个函数中,我安排了一个本地通知(我已经检查过那个壁炉,通知的其他部分都是正确的):
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];然后,我使用这段代码打印预定的本地通知:
NSLog(@"notifications %@", [UIApplication sharedApplication].scheduledLocalNotifications );但是数组
[UIApplication sharedApplication].scheduledLocalNotifications 即使没有触发通知,也是空的。然后,为了检查本地通知是否真的被调度,我尝试使用以下代码
NSLog(@"notification appdelegate %@", application.scheduledLocalNotifications );在函数中
- (void)applicationWillResignActive:(UIApplication *)application 在这种情况下,调度的本地通知的数组不是空的,Appdelegate.m函数打印正确的通知。这种情况只发生在真正的设备上,在模拟器中,我的应用程序工作正常。问题是不检查用户调度本地通知的权限,因为我已经面临过这种情况。有人能帮我吗?一些想法?
发布于 2014-09-26 15:48:38
这不是iOS 8的问题,但是
[UIApplication sharedApplication].scheduledLocalNotifications问题。最相关的答案,我找到了here
现在也有类似的问题。我在这里的猜测是,iOS不会立即安排通知,而是只在当前运行循环的末尾调度通知。在同一个run循环中多次设置scheduledLocalNotifications属性时,我遇到了这些问题,并且似乎没有相应地更新更改。我想我应该自己保存一个本地通知数组的副本,并且只设置scheduledLocalNotifications,而不读取它。
发布于 2014-09-21 07:12:28
对于iOS8:
从现在起30秒内发出本地通知。
-关于目标c
UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.alertAction = @"Testing notifications on iOS8";
localNotification.alertBody = @"Woww it works!!";
localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow: 30];
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];-斯威夫特
var localNotification:UILocalNotification = UILocalNotification()
localNotification.alertAction = "Testing notifications on iOS8"
localNotification.alertBody = "Woww it works!!
localNotification.fireDate = NSDate(timeIntervalSinceNow: 30)
UIApplication.sharedApplication().scheduleLocalNotification(localNotification)注册通知设置
-关于目标c
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]]
return YES;
}-斯威夫特
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool
{
application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: UIUserNotificationType.Sound|UIUserNotificationType.Alert |UIUserNotificationType.Badge, categories: nil)
return true
}现在,您也可以获得本地通知。
发布于 2016-12-21 09:22:01
一旦为给定日期触发本地通知,它就不会在UIApplication UIApplication数组中显示详细信息。所以,如果你给fireDate (从CurrentDate到10~20)一些间隔计数,它会给你显示细节。
https://stackoverflow.com/questions/25948037
复制相似问题