测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可协议 | MIT |
发布上次发布 | 2014年12月 |
由 James Coleman 维护。
苹果没有为运行中的应用程序提供显示通知横幅的 API。对于许多项目,响应远程推送通知的最合理方式是显示该通知(如果您的应用程序不在前台,则以相同的方式显示),并允许用户确定通知是否值得响应。
JCNotificationBannerPresenter 允许您从应用程序中的任何代码段异步显示通知横幅。它不针对视图/视图控制器,比如您可以直接从 AppDelegate 中使用它。它并不尝试模仿苹果通知的样式;似乎最好避免这种尝试带来的奇特 Valley。然而,像苹果的通知一样,该项目从状态栏中间滑下一个横幅,并在设定的时间内超时后滑回。横幅也可以通过点击它来关闭,并可以指定一个自定义点击处理程序来触发一些自定义操作。
#import "JCNotificationBannerPresenter.h"
…
- (void) application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)notification {
NSString* title = @"Push Notification";
NSDictionary* aps = [notification objectForKey:@"aps"];
NSString* alert = [aps objectForKey:@"alert"];
[JCNotificationCenter
enqueueNotificationWithTitle:title
message:alert
tapHandler:^{
NSLog(@"Received tap on notification banner!");
}];
}
默认情况下,横幅样式是 iOS 风格,带有 3D 旋转的横幅。该项目附带了一个替代的 Smoke 外观,它会从状态栏滑下一个半透明的窗口。如果您想在某项目中的所有通知中使用相同的外观,可以通过覆盖或编辑 JCNotificationCenter 中的 +presenterClass
方法在编译时设置样式。
使用方法 +enqueueNotificationWithTitle:message:tapHandler:
添加的通知将在五秒后超时。您可以通过设置 JCNotificationBanner 中的超时属性,并使用 -enqueueNotification:
添加横幅来逐个更改每个通知的超时设置。一个值 <= 0 将永远不会超时,需要用户交互才能删除。
此项目包括一个 podspec
,用于与 CocoaPods 一起使用。只需将以下内容添加到您的 Podfile
中,并运行 pod install
。
pod 'JCNotificationBannerPresenter'
添加到您的 Podfile
中并运行 pod install
。
另外,您可以将项目配置为包括 QuartzCore
(此框架已包含在 CoreGraphics
中)并添加此项目中的所有 .h
和 .m
文件。如果您的项目不使用 ARC,您需要在这些文件上启用 ARC。您可以按文件启用 ARC,通过添加 -fobjc-arc 标志,如<在StackOverflow 常见问题中所述。
本项目采用MIT协议授权。所有版权均归我所有。
版权所有(c)2012 James Coleman
特此授权,任何人免费获取本软件及其相关文档(以下称为“软件”),在不作限制的前提下使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向软件提供方提供软件的人士也这样做,但受以下条件约束:
上述版权声明和本许可声明应包含在软件的所有副本或大部分副本中。
软件按“现状”提供,不提供任何形式的保证,无论是有形保证还是暗示保证,包括但不限于商业性、适用于特定目的和非侵犯性的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论该索赔、损害或其他责任是因合同行为、侵权行为或其他原因引起的,来自、出于或与软件或软件的使用或其他处理有关。