我希望能够使用Sinch拨打App-To-App。我已按照步骤将代码转换为Swift。由于某种原因,永远不会调用方法didReceiveIncomingCall。我将粘贴一些代码,以便您可以看到我如何启动SinchClient
我的viewDidLoad
方法。
sinchClient = Sinch.clientWithApplicationKey("key", applicationSecret: "secret", environmentHost: "sandbox.sinch.com", userId: "idOfUser")
sinchClient.setSupportCalling(true)
sinchClient.delegate = self
sinchClient.start()
sinchClient.startListeningOnActiveConnection()
然后我使用以下方法从user1拨打电话给user2。
if(clientStarted){
let callClient = sinchClient.callClient()
callClient.callUserWithId("user2")
sinchCall.delegate = self
}
这是我SINCallClientDelegate
extension CallViewController: SINCallClientDelegate{
func client(client: SINCallClient!, didReceiveIncomingCall call: SINCall!) {
print("GOT ME AN INCOMING CALL")
sinchCall = call
sinchCall.delegate = self
sinchCall.answer()
}
}
由于某种原因,方法didRecieveIncomingCall永远不会被调用。有时我也会收到以下错误: 警告:未分配SINCallClient代表?代表应处理来电。 (参见 - [SIN allClient Delegate notifyDelegate fIncomingCall:])
我想也许它可能与sinchClient.startListeningOnActiveConnection()
有关,但我不确定。
需要注意的是,我确实知道我的sinchClient何时启动,因为我在我的代表中听取了它。调用clientDidStart
时,我会更改clientStarted: Bool
的变量。我在一个文件中也有三个代表(SINCallClientDelegate
,SINCallDelegate
和SINClientDelegate
)。它等待sinchClient在进行任何调用之前启动。
答案 0 :(得分:2)
所以我的解决方案非常简单。我从未设置sinchClient.callClient().delegate = self
。请阅读有关该问题的评论。
sinchClient.callClient().delegate = self
sinchClient.setSupportCalling(true)
sinchClient.delegate = self
sinchClient.start()
sinchClient.startListeningOnActiveConnection()