1

私は Sinch SDK を正常に統合し、アプリが開いているときにうまく機能し、アプリが閉じているときに呼び出しを処理しています。

アプリを閉じると、通知をクリックすると着信にローカル通知が表示され、通話画面が表示され、そこで「応答」または「拒否」を押しますが、必要なのは通知をクリックしたときです。 「応答」または「拒否」を求めることなく、直接コールを確立します。

Appdelegate.mでメソッドを呼び出してみました-

   - (void)handleLocalNotification:(UILocalNotification *)notification  
    {
        CallViewController *obj=[CallViewController alloc];
        double delayInSeconds =2.0;
             dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
             dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
                [obj answeCallDireclty];
                 NSLog(@"Answer  ");

      });

CallViewController.m

-(void)answeCallDireclty
{
    [self.call answer];
}

- (IBAction)accept:(id)sender {
 //   [[self audioController] stopPlayingSoundFile];
    [self.call answer];

}

制御は answerCallDireclty(); に到達します。メソッドですが、通話が確立されていません。「応答」ボタンを押したときにのみ通話が確立されます。

4

1 に答える 1

3

-[SINCallClient client:didReceiveIncomingCall:]あなたのシナリオでは、この場合は SINCall をcallビュー コントローラーのプロパティに割り当てていると想定しているコールバックの処理方法に依存している可能性があります。callたとえば、アプリケーションがフォアグラウンドに戻ると、デリゲート メソッドが呼び出され、ビュー コントローラーのプロパティにSINCall を割り当てる機会が与えられます-[SINCall answer]

method に到達したとき、 nil ではなく、まだ割り当てられていますかanswerCallDirectly?self.call

(また、メソッドを介して Sinch SDK にローカル通知を中継する必要があります-[SINClient relayLocalNotification:]が、この特定のケースでは、それは問題ではないと思います)

于 2014-08-27T20:42:52.197 に答える