我试图在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的手机,并强制退出其中一部手机上的应用程序(假设应触发离线状态) - 但仍然没有骰子。我正在看一个断点,但代表似乎没有开枪。
有什么想法吗?
谢谢, 查理
答案 0 :(得分:4)
确保两部手机都注册了推送数据(例如,不会在模拟器上工作)。否则,将其中一个设备置于飞行模式并尝试向该设备发送消息应该足以获得shouldSendPushNotification
回调(确保您在两个设备上以不同用户身份登录)。
如果您未收到messageSent
回叫,则表示您未获得shouldSendPushNotification
回调。同样,如果您收到messageDelivered
事件,则无法获得shouldSendPushNotification
。