2016-05-13 126 views
0

我想实现我的应用程序交互的本地通知,特别是通过实施此方法运行:的iOS:处理交互式通知时,应用程序无法在后台

- (void) application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forLocalNotification:(UILocalNotification *)notification withResponseInfo:(NSDictionary *)responseInfo completionHandler:(void (^)())completionHandler 

的方法工作正常,除非用户杀死应用程序,然后收到交互式本地通知。在那种情况下,没有指示接收到本地通知动作(按钮点击)

我寻求帮助/建议2个方面

(1)有没有人能够确认/否认handleActionWithIdentifier不叫当应用程序没有运行在所有(即甚至在后台模式)。我浏览了相关的编程指南,我注意到很多语言都提到了​​和background模式,但没有解决第三种可能性。然而,我正在寻找一些比'它对我不起作用'更坚实的东西来休息。在文档中有什么说这些应用程序被杀后应该或不应该工作? (2)我杀了我的应用程序后,如何登录Xcode控制台?每当我尝试这个,我注意到,当我重新启动应用程序时,我不再有日志记录。这很重要,因为我需要证明这种或那种方式是否会在用户杀死应用程序后收到来自用户单击的交互式通知消息。

我将不胜感激关于此事的任何和所有建议。谢谢。

回答

0

如果应用程序已终止,那么当它通过通知启动时,则会使用UIApplicationLaunchOptionsLocalNotificationKey的键调用didFinishLaunchingWithOptions。此密钥的值是包含本地通知的有效负载的NSDictionary

当然,如果应用程序未运行,则无法从应用程序登录Xcode控制台。但是,如果您不通过Xcode运行应用程序,则可以通过转到Window | Devices然后选择连接的设备来观看输出。 如果您通过Xcode重新启动应用程序,并且日志记录不存在,这可能是Xcode中的一个错误,我注意到最近版本的Xcode在显示日志记录时遇到问题。如果发生这种情况请尝试设备输出。

+0

感谢您的有用信息。我尴尬承认我不知道如何看到我的iPhone上运行的NSLog语句不通过Xcode。 Window/Devices是什么意思?我没有看到它。 – helloB

+1

在Xcode的窗口菜单中,选择设备,然后连接的iPhone的名称应该出现在左侧(以及Mac和模拟器列表)。当您单击iPhone设备时,Xcode将显示设备信息,并在底部显示设备日志控制台。如果您看不到它,请查看屏幕底部是否有透露标签(透露标签是一个小框中的小指向上的箭头)。 – Gruntcakes

+0

我确实尝试了您的建议,但我在设备上列出的所有内容都是崩溃日志。我正在尝试查看NSLog类型的报表... – helloB

相关问题