为啥在 iOS 7 中我的本地通知没有显示横幅
Posted
技术标签:
【中文标题】为啥在 iOS 7 中我的本地通知没有显示横幅【英文标题】:Why is a banner not shown for my local notification in iOS 7为什么在 iOS 7 中我的本地通知没有显示横幅 【发布时间】:2014-02-22 22:26:31 【问题描述】:我的 ios 7 应用在 NSOperationQueue 块内调用的方法中生成本地通知。通知出现在通知中心,但它们没有在屏幕顶部显示横幅。应用在后台时正在生成通知。
我已经尝试了所有我能想到的方法,并且在 Google 上进行了大量搜索,但仍然无法显示横幅。
这是构建和安排通知的代码:
// In the most recent case, I have verified that
// alertText = Why not work? and alertAction = View
UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.alertBody = alertText;
localNotification.alertAction = alertAction;
localNotification.alertLaunchImage = launchImage;
UIApplication *application = [UIApplication sharedApplication];
application.applicationIconBadgeNumber++;
localNotification.applicationIconBadgeNumber = application.applicationIconBadgeNumber;
[self performSelectorOnMainThread:@selector(scheduleNotification:)
withObject:localNotification waitUntilDone:NO];
- (void)scheduleNotification: (id)notification
UILocalNotification *localNotification = (UILocalNotification *)notification;
// Schedule it with the app
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
我检查了我的应用的通知设置,它们是:
警报样式:横幅 徽章应用程序图标:开启 声音:关闭 在通知中心显示:开启 包括:5 最近的项目 在锁定屏幕上显示:开启
【问题讨论】:
【参考方案1】:错误实际上是在我的代码的不同部分。我在后台线程中生成通知,在通知发出之前线程被取消。
【讨论】:
本地通知发出前怎么不取消?【参考方案2】:如果您的应用正在运行,则不能拥有此横幅(除非您自己创建)。
解决方案可能是:
应用运行时,Notification
被处理
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
然后你可以使用这个项目(我用过,而且非常好):TSMessages 来创建类似于你的横幅的东西。
希望这会有所帮助...
【讨论】:
以上是关于为啥在 iOS 7 中我的本地通知没有显示横幅的主要内容,如果未能解决你的问题,请参考以下文章