NSURLSessionDataTask when 运行 in background remote notification with content_available =1
NSURLSessionDataTask when running in background remote notification with content_available =1
我的应用正在发送通知(如聊天应用),通知其他应用它需要从服务器获取消息,即使它不在前台也是如此。
我计划使用 Content_available=1
发送通知的 APN,然后让应用程序调用服务器以获取新消息。
我的问题是,
是否会一直调用 didReceiveRemoteNotification
,只要它是 运行 在后台)?
我不打算使用后台传输服务,而是在 didReceiveRemoteNotification
委托中进行提取调用?
关于使用 NSURLSessionDATATask
实现此目的的任何顾虑(相对于 NSURLSessionBackgroundTask
?
如果用户已明确终止应用程序,则永远不会传送后台推送。
除此之外,后台推送在 8.1 之前都是可靠的(尽管不能 100% 保证)。
对于 iOS 8.1 及更高版本,如果设备正在充电,后台推送只会在发送后立即传送到应用程序。否则应用程序可能要等到几个或几个小时后才能收到推送。
因此,如果您需要应用程序在消息可用后的短时间内收到新消息的通知,那么后台推送现在是无用的。
我和许多其他人都希望这会在 iOS9 有所改变,但我并不乐观。
我的应用正在发送通知(如聊天应用),通知其他应用它需要从服务器获取消息,即使它不在前台也是如此。
我计划使用 Content_available=1
发送通知的 APN,然后让应用程序调用服务器以获取新消息。
我的问题是,
是否会一直调用
didReceiveRemoteNotification
,只要它是 运行 在后台)?我不打算使用后台传输服务,而是在
didReceiveRemoteNotification
委托中进行提取调用?关于使用
NSURLSessionDATATask
实现此目的的任何顾虑(相对于NSURLSessionBackgroundTask
?
如果用户已明确终止应用程序,则永远不会传送后台推送。
除此之外,后台推送在 8.1 之前都是可靠的(尽管不能 100% 保证)。
对于 iOS 8.1 及更高版本,如果设备正在充电,后台推送只会在发送后立即传送到应用程序。否则应用程序可能要等到几个或几个小时后才能收到推送。
因此,如果您需要应用程序在消息可用后的短时间内收到新消息的通知,那么后台推送现在是无用的。
我和许多其他人都希望这会在 iOS9 有所改变,但我并不乐观。