iOS - 我可以在使用 Callkit 接听电话时打开我的 VoIP 应用程序吗?

Cho*_*oxx 0 iphone objective-c ios

我打算创建一个 iOS VoIP 应用程序(之前没有制作任何 iOS 应用程序)。我正在阅读IOS 中的Callkit,通过它可以让他的应用程序通过 iPhone 本机通话屏幕接听电话。

在这里阅读了Callkit api 其中提到人们可以知道是否接听了电话。

通过教程,这里是检测呼叫被应答的代码:

-(void)reportIncomingCallWithHandle:(NSString *)handle
                            success:(void (^)())success
                            failure:(void (^)(NSError * error))failure {
    CXCallUpdate *update = [self newCallUpdateWithHandle:handle];
    self.callId = [NSUUID UUID];

    [self.provider reportNewIncomingCallWithUUID:self.callId update:update completion:^(NSError * _Nullable error) {
        if (error) {
            if (failure) failure(error);
        } else {
            if (success) {
                success();
            }
        }
    }];
}
Run Code Online (Sandbox Code Playgroud)

查看成功块。那么有没有办法在这个成功块执行时打开我的应用程序?或者我可以覆盖来电屏幕上的默认按钮来打开我的应用程序吗?

我知道在收到任​​何类型的通知或事件触发器时无法打开应用程序。所以我想如果我可以使用Callkit做同样的事情,可能有某种方法

我用谷歌搜索了所有内容,但没有发现有关我上述查询的任何线索。如果可能,请帮助我。

小智 5

我遇到了同样的问题。行为取决于设备是否被锁定。

  1. 锁定:系统调用屏幕出现。您可以在后台运行应用程序,包括视图转换。但是,尽管您的应用程序显示在视图下方,但用户只会看到系统调用屏幕。由于设备被锁定,深层链接也无法正常工作。
  2. 解锁:通话屏幕相同,但一旦用户接听电话,将显示应用程序。

您可能知道,我们可以更改打开应用程序的呼叫屏幕上按钮的图标,这是目前我们能做的最好的事情。