如何在didfinishlaunchingwithoptions中调用didReceiveRemoteNotification方法?我使用的是快速语言。 当用户直接打开应用程序时,通知被取消,并且未调用didReceiveRemoteNotification中执行的操作。如何处理?
我已经到达了这里。但无法完成
std::bind
答案 0 :(得分:3)
根据文档,
当应用未在中运行时,会发送通知 前景。在这种情况下,系统会显示通知, 显示警报,标记图标,可能播放声音,以及 也许会显示一个或多个动作按钮供用户点击。
用户点按iOS 8通知中的自定义操作按钮。在这 例如,iOS调用 应用:handleActionWithIdentifier:forRemoteNotification:completionHandler: 要么 应用:handleActionWithIdentifier:forLocalNotification:completionHandler :. 在这两种方法中,您都可以获得操作的标识符 确定用户点击的按钮。你也可以得到遥控器 或本地通知对象,以便您可以检索任何信息 你需要处理这个动作。
用户点按提醒中的默认按钮或点击(或点击) 应用程序图标如果轻触默认操作按钮(在运行的设备上) iOS),系统启动应用程序,应用程序调用其委托 application:didFinishLaunchingWithOptions:方法,传入 通知有效载荷(用于远程通知)或 本地通知对象(用于本地通知)。虽然 application:didFinishLaunchingWithOptions:不是最好的地方 处理通知,此时获取有效负载给你 在处理程序方法之前启动更新过程的机会 被称为。
对于远程通知,系统也会调用 应用:didReceiveRemoteNotification:fetchCompletionHandler: app delegate的方法。
如果在运行OS X的计算机上单击了应用程序图标,则应用程序会调用 委托的applicationDidFinishLaunching:方法中的 委托可以获取远程通知负载。如果是app图标 在点击运行iOS的设备上,该应用程序调用相同的方法,但是 不提供有关通知的信息。
当应用程序在中运行时,会发送通知 前景。该应用程序调用 application:didReceiveRemoteNotification:fetchCompletionHandler:或 application:didReceiveLocalNotification:app delegate的方法。 (如果application:didReceiveRemoteNotification:fetchCompletionHandler: 没有实现,系统调用 application:didReceiveRemoteNotification:。)在OS X中,系统调用 应用:didReceiveRemoteNotification:
摘要: 你必须在3种情况下处理APNS:
2. 应用程序被暂停/终止,用户点击通知或警告:应用程序:didFinishLaunchingWithOptions:app delegate被调用,您可以从launchOption访问有效负载。
3. 应用程序被暂停/终止,用户点击应用程序图标:您将不会收到有关APNS的任何信息。您可以做的最简单的解决方案是,一旦应用程序变为活动状态,请对Web服务器进行Web服务调用,以获取所有更新的信息并更新您的UI和应用程序徽章计数:)
希望有所帮助:)