我正在开发使用Sinch框架进行音频呼叫的应用程序。 我不知道安装过程中会错过什么。当应用程序处于前台时,一切正常。我可以打电话,也可以说话。
但是当应用程序在后台时。我希望收到voip推送通知,但不会收到。
我在Sinch网站上提出了voip证书。 我可以使用knuff接收推送通知
代码
-(void)initSinchClientWithUserId:(NSString *)userId{
sinchClient = [Sinch clientWithApplicationKey:@"3a130480-*****e370f0"
applicationSecret:@"XP0E******3Oh2PxCWw=="
environmentHost:@"sandbox.sinch.com"
userId:userId];
[sinchClient setSupportCalling:YES];
[sinchClient enableManagedPushNotifications];
sinchClient.delegate =self;
sinchClient.callClient.delegate =self;
[sinchClient start];
[sinchClient startListeningOnActiveConnection];
if (pushTokenData) {
[sinchClient registerPushNotificationData:pushTokenData];
}
}
设置推送通知
self.push = [Sinch managedPushWithAPSEnvironment:SINAPSEnvironmentAutomatic];
self.push.delegate = self;
[self.push setDesiredPushTypeAutomatically];
[self.push registerUserNotificationSettings];
保存令牌
- (void)pushRegistry:(PKPushRegistry *)registry didUpdatePushCredentials:(PKPushCredentials *)pushCredentials forType:(PKPushType)type{
if (sinchClient) {
[sinchClient registerPushNotificationData:pushCredentials.token];
}
}
处理通知,但从未调用
- (void)managedPush:(id<SINManagedPush>)unused
didReceiveIncomingPushWithPayload:(NSDictionary *)payload
forType:(NSString *)pushType {
[self handleRemoteNotification:payload];
}
答案 0 :(得分:0)
if(pushTokenData){ [sinchClient registerPushNotificationData:pushTokenData]; }
[sinchClient registerPushNotificationData:pushTokenData];应该在获得推送令牌时真正调用,而不是在init或应用启动时调用。