我已经成功集成了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();方法但是呼叫未建立,只有当我按下“接听”按钮时,呼叫才会获得建立。
答案 0 :(得分:3)
在您的场景中,它可能取决于您处理-[SINCallClient client:didReceiveIncomingCall:]
回调的方式,我假设在此情况下将SINCall分配给视图控制器上的call
属性。例如。一旦应用程序返回到前台,将调用该委托方法,这使您有机会将SINCall分配给视图控制器上的call
属性,然后您可以在该属性上调用-[SINCall answer]
。
当您找到方法answerCallDirectly
时,您确定已分配self.call
,而不是nil吗?
(您还应该通过方法-[SINClient relayLocalNotification:]
将本地通知转发给Sinch SDK,但在这种特殊情况下我不认为这是问题)