iPhone如何以编程方式访问通知中心
根据苹果指南:
如果在运行iOS的设备上点击应用程序图标,应用程序将调用相同的方法,但不提供有关通知的信息。 如果应用程序图标在运行的计算机上单击
https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Introduction.html#//apple_ref/doc/uid/TP40008194
据我所知,似乎无法检测到应用程序图标被点击时的通知。
所以我试图以编程方式检索通知中心,但似乎也是不可能的。
以编程方式检索通知中心是不可能的吗?
我想要做的是检测是否收到通知,即使应用程序在后台。
以编程方式检索通知中心是不可能的吗?
不,使用任何公共API都是不可能的。
您的应用程序对通知中心的当前状态不可知,因为它们是两个分离的实体。
无论如何,正如AdamG所指出的那样,你可以在iOS 7中实现
application:didReceiveRemoteNotification:fetchCompletionHandler:
根据文档 ,这是不pipe你的应用程序的状态(所以即使不运行或在后台)调用。
为了使用它,你必须支持remote-notification
后台模式。 就是这样:
在Xcode 5及更高版本中,您可以从项目设置的function选项卡声明您的应用程序支持的背景模式。 启用背景模式选项将UIBackgroundModes键添加到您的应用的Info.plist文件。 select一个或多个checkbox将相应的背景模式值添加到该键。
现在,尽pipe您仍然无法以编程方式访问通知中心,但您可以随时跟踪通知。
一个嘲弄的实施将如下:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { // Hey we got a notification! // Now we have 30 seconds to do whatever we like... // ...and then we have to call the completion handler completionHandler(UIBackgroundFetchResultNoData); }
我很想知道iOS8是否会在这里改变任何东西,并让我们访问定制iOS8应用程序的通知中心小部件?
加文
在iOS 7下,有一种方法可以做到这一点。
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))handler
然后做任何你需要做的应用程序来处理通知,并确保注册,它是由电话接收。
当推送通知到达时,系统会向用户显示通知,并在后台启动应用程序(如果需要),以便可以调用此方法。 使用此方法下载与推送通知相关的任何数据。 当你的方法完成后,调用处理程序参数中的块。
在这里find。
- 在Xcode中关于OpenCV的链接错误
- iOS 7蓝牙输出不适用于AVAudioSessionCategoryPlayAndRecord
- 简单的KVO例子
- 在iOS中从Facebook获取用户的个人信息
- 如何设置file upload到服务器没有.json扩展到使用.NET框架的内容types“application / json”
- 如何将dispatch_data_t转换为NSData?
- UIView绘制矩形保留的以前的绘图,并不清除view.transform
- 通过Facebook iOS Parse.comlogin用户
- MonoTouch.Foundation.MonoTouchException已经抛出了Objective-Cexception。 名称:NSInternalInconsistencyException