我需要从推送器获取触发的eventos,当应用程序进入后台时我不会得到它们(只有第一个)。
我有这个:
@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];
}];
问题是我在进入后台时会遇到一个事件,但在第一次事件发生之后我就不再使用它了。
我已在https://github.com/pusher/pusher-test-iOS/blob/master/Diagnostics/Code/ClientDisconnectionHandler.h
实施了代码如果应用程序走到前台,它可以正常工作。
答案 0 :(得分:5)
我是libPusher的作者。我在Github上回答了你的问题,但我想我会在这里发布,因为它可能对其他人有帮助。
不幸的是,它不可能在背景中使用Pusher而不是它的设计目的。 Pusher非常适合在您的应用运行时实时接收事件但是为了获取背景通知,您确实需要使用Apple推送通知或周期提取,具体取决于您是否更喜欢推或拉。
我的建议是: