2

我正在尝试在 Sinch 中实现推送功能。

我已经这样设置了我的客户:

[_client setSupportMessaging:YES];
[_client setSupportPushNotifications:YES];

_client.delegate = self;

[_client start];
[_client startListeningOnActiveConnection];

然后上

- (void)clientDidStart:(id<SINClient>)client {
    client.messageClient.delegate = self;
}

在 AppDelegate.h

- (void)application:(UIApplication *)application      didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
    // get previously initiated Sinch client
    id<SINClient> client = [SinchClient sharedClient].client;
    [client registerPushNotificationData:deviceToken];
}

其他委托方法工作正常(messageSent、messageDelivered 等),但是,我似乎无法调用

(void)message:(id<SINMessage>)message shouldSendPushNotifications:(NSArray *)pushPairs

为了测试,我设置了两部手机,每部手机都运行一个 SinchClient,并强制退出其中一部手机上的应用程序(假设应该触发离线状态)——但仍然没有骰子。我正在看一个断点,但代表似乎没有被解雇。

有什么想法吗?

谢谢,查理

4

1 回答 1

4

确保两部手机都注册了推送数据(例如,不能在模拟器上工作)。否则,将其中一台设备置于飞行模式并尝试向该设备发送消息就足以获得shouldSendPushNotification回调(确保您在两台设备上以不同用户身份登录)。如果您没有收到messageSent回拨,您将不会收到shouldSendPushNotification回拨。同样,如果您收到messageDelivered事件,您将不会获得shouldSendPushNotification.

于 2014-06-02T07:02:20.007 回答