2017-01-05 3 views
1

Der Anruf kann nicht initiiert werden, wenn die App im iPhone (iOS 10) geschlossen ist.Sinch - Der Anruf wird nicht im geschlossenen Zustand initiiert

Ich benutze Push-Kit-Service für Anruf. Wenn App im Hintergrund ist, empfange ich Anruf, aber wenn App im geschlossenen Zustand ist, dann wird die Benachrichtigung vom Server empfangen, aber der Anruf wird nicht initiiert.

Ich habe überprüft _client Objekt ist nicht Null.

I Sinch Client von Code unten am Initialisierung ::

- (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]; 

    } 

} 

Im Folgenden finden Sie Code in didReceiveIncomingPushWithPayload Methode

-(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]; 
     }); 
    } 
} 

Hinweis :: Ich habe prüfen in iOS 9, es funktioniert richtig, wie unten Methode aufgerufen wird

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

} 
+0

Mit demselben Problem konfrontiert, nicht in der Lage, Anruf zu erhalten, während App vollständig geschlossen ist. Keine lokale Benachrichtigung/Remote-Benachrichtigung für Anruf generiert. Außerdem wurde überprüft, dass der Client ordnungsgemäß gestartet wurde. –

+0

Haben Sie NSUserNotification für iOS 10 verwendet? –

+0

@VishalSonawane Ich bekomme kein Problem mit der lokalen Benachrichtigung und bekomme ein Problem mit der ** Delegate-Methode ** von ** SINCH SDK **. Es wird nicht in iOS10 aufgerufen. –

Antwort

1

Versuchen Sie diesen Code für Sinch Initialisierung zu verwenden:

1. Deklarieren Eigenschaft in Ihrem viewController

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

2. hinzufügen Im Folgenden Code in 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. Schließlich

- (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]; 
    } 
} 
Verwandte Themen