Ios7 当iOS应用程序进入后台时,如何获取推送事件?

Ios7 当iOS应用程序进入后台时,如何获取推送事件?,ios7,background,pusher,Ios7,Background,Pusher,我需要从pusher获得触发事件,当应用程序进入后台时,我没有得到它们(只有第一个) 我有这个: @property(strong, nonatomic) PTPusherPresenceChannel *taxi_channel; PTPusherPresenceChannel *taxi = [PusherController sharedApp].taxi_channel; - (void)viewDidLoad @weakify(self); [taxi bindToEventN

我需要从pusher获得触发事件,当应用程序进入后台时,我没有得到它们(只有第一个)

我有这个:

@property(strong, nonatomic) PTPusherPresenceChannel *taxi_channel;

PTPusherPresenceChannel *taxi = [PusherController sharedApp].taxi_channel;

- (void)viewDidLoad

@weakify(self);

[taxi bindToEventNamed:@"client-driver-cancel-service" handleWithBlock:^(PTPusherEvent *event)
 {
     DDLogDebug(@"%@: %@", event.name, event.data);
     @strongify(self);

     [self cancelServiceAcepted];
 }];
问题是,当我进入后台时,我只得到一个事件,但在第一个事件之后,我再也看不到它们了

我已经在上实现了代码


如果应用程序在前台运行,它就可以正常工作。

我是libPusher的作者。我在Github上回答了你的问题,但我想我会把它贴在这里,因为它可能会对其他人有所帮助

不幸的是,在后台使用Pusher并不是真的可能,也不是它的设计初衷。Pusher非常适合在应用程序运行时实时接收事件,但要获取后台通知,您确实需要考虑使用Apple push通知或时段提取,这取决于您是喜欢push还是pull

我的建议是:

  • 在应用程序处于前台时使用Pusher接收实时更新
  • 当应用程序处于后台时,使用推送通知向应用程序发送重要事件(这些事件应该不太频繁)和/或
  • 可能使用后台提取从服务器中提取最新的更改/事件
  • 当应用程序在前台恢复时,重新开始收听Pusher中的事件

我是libPusher的作者。我在Github上回答了你的问题,但我想我会把它贴在这里,因为它可能会对其他人有所帮助

不幸的是,在后台使用Pusher并不是真的可能,也不是它的设计初衷。Pusher非常适合在应用程序运行时实时接收事件,但要获取后台通知,您确实需要考虑使用Apple push通知或时段提取,这取决于您是喜欢push还是pull

我的建议是:

  • 在应用程序处于前台时使用Pusher接收实时更新
  • 当应用程序处于后台时,使用推送通知向应用程序发送重要事件(这些事件应该不太频繁)和/或
  • 可能使用后台提取从服务器中提取最新的更改/事件
  • 当应用程序在前台恢复时,重新开始收听Pusher中的事件

有没有办法让用户在后台保持“在线”?我们是否应该在一个时间间隔内ping服务器,让后端知道我们在线?也许让用户在后台保持在线不是一个好主意有没有办法让用户在后台保持在线?我们是否应该在一个时间间隔内ping服务器,让后端知道我们在线?也许让用户在后台保持在线不是一个好主意