2017-01-05 3 views
1

Не удается инициировать вызов, если приложение находится в закрытом состоянии в iPhone (iOS 10).Sinch - Call не запускается в закрытом состоянии

Я использую услугу push kit для звонка. Если приложение находится в фоновом режиме, я получаю вызов, но если приложение находится в закрытом состоянии, уведомление отправляется с сервера, но вызов не запускается.

Я проверил _client Объект не ноль.

Я инициализация Sinch клиента по коде ниже ::

- (void)initSinchClientWithUserId:(NSString *)userId 
{  
    if (!_client) { 

     if(userId.length <= 0) 
      return; 


     _client = [Sinch clientWithApplicationKey:SINCH_APP_KEY 
             environmentHost:SINCH_ENVIRONMENT_HOST 
               userId:userId]; 

     _client.delegate = self; 
     _client.callClient.delegate = self; 
     [_client setSupportCalling:YES]; 

     [_client setSupportActiveConnectionInBackground:YES]; 

     [_client setSupportPushNotifications:YES]; 
     [_client start]; 

     [_client startListeningOnActiveConnection]; 

    } 

} 

Ниже код в didReceiveIncomingPushWithPayload метод

-(void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload forType:(NSString *)type 
{ 

    NSDictionary* dic = payload.dictionaryPayload 

    if([dic.allKeys containsObject:@"sin"]) 
    { 
     NSString* sinchinfo = [dic objectForKey:@"sin"]; 

     if (sinchinfo == nil) 
      return; 

     dispatch_async(dispatch_get_main_queue(), ^{ 
      [_client relayRemotePushNotificationPayload:sinchinfo]; 
     }); 
    } 
} 

Примечания :: У меня проверить в прошивке 9, она работает надлежащим образом, поскольку метод ниже подлежит вызову

- (SINLocalNotification *)client:(id<SINClient>)client localNotificationForIncomingCall:(id<SINCall>)call 
{ 

} 
+0

Облицовка одной и той же проблемы, неспособная получить вызов, когда приложение полностью закрыто. Отсутствует уведомление о локальном уведомлении/удаленном уведомлении для вызова. Также проверьте, что клиент запущен правильно. –

+0

Вы использовали NSUserNotification для iOS 10 ?? –

+0

@VishalSonawane У меня нет проблем с локальным уведомлением, возникла проблема с ** методом делегирования ** из ** SINCH SDK **. Он не вызывается в iOS10. –

ответ

1

Попробуйте использовать этот код для Sinch инициализации:

1. Объявите свойство в вашем viewController

@property (nonatomic, readwrite, strong) id<SINManagedPush> push; 

2. Добавить Ниже код в AppDelegate (didFinishLaunchingWithOptions)

//Sinch managed Push Notifications 
    self.push = [Sinch managedPushWithAPSEnvironment:SINAPSEnvironmentAutomatic]; 
    self.push.delegate = self; 
    [self.push setDesiredPushTypeAutomatically]; 
    //Sinch Remote notifications 
    id config = [[SinchService configWithApplicationKey:SINCH_KEY 
             applicationSecret:SINCH_SECRET 
             environmentHost:SINCH_HOST] 
       pushNotificationsWithEnvironment:SINAPSEnvironmentProduction]; 

    id<SINService> sinch = [SinchService serviceWithConfig:config]; 
    sinch.delegate = self; 
    sinch.callClient.delegate = self; 

3. Итог

- (void)initSinchClientWithUserId:(NSString *)userId { 
    if (!_client) { 
     _client = [Sinch clientWithApplicationKey:SINCH_KEY 
           applicationSecret:SINCH_SECRET 
            environmentHost:SINCH_HOST 
              userId:userId]; 

     _client.delegate = self; 
     _client.callClient.delegate = self; 
     [_client setSupportCalling:YES]; 
     [_client enableManagedPushNotifications]; 
     [_client start]; 
    } 
} 
Смежные вопросы