标签: callkit

iOS中的呼叫目录扩展如何更新

我有一个正在开发的应用程序,我想使用CallKit的呼叫目录扩展来存储几千个电话号码.

我感到困惑的是,扩展如何以及何时被调用?每次打电话都不会发生这种情况.是否会在应用程序启动时发生?

我问的原因是,我不想在我的应用程序中保留数千个电话号码.我不希望用户看到这些电话号码(除非他们接到其中一个电话).所以,我想要做的是使用Extension一次保存电话号码,从Web服务加载号码,但只是定期.

谢谢!

directory ios callkit

3
推荐指数
1
解决办法
695
查看次数

如何使用callkit框架在iOS本机ui调用上显示调用者图像?

在我的iOS应用程序中,我使用CallKit和PushKit进行VOIP调用.通过使用CallKit,我能够显示本机调用ui和一切正常,但我需要显示本地调用UI与调用者图像.这该怎么做?

Image1在接收方没有来电图像"我的应用目前表现得像这样"

JPG

带接收方的来电图像的Image2"我想在我的应用中使用此功能"

JPG

voip objective-c ios swift callkit

2
推荐指数
1
解决办法
1795
查看次数

如何在应用程序中获取voip通话记录信息 - Call Kit

我已经在我的 voip 应用程序中实现了呼叫工具包,我在其中生成传入或传出呼叫的呼叫日志(在最近的电话选项卡上可见)。当我点击通话记录时,它会打开我的应用程序。我已经覆盖了UIApplication委托方法来获取处理程序。

- (BOOL)application:(UIApplication *)application
continueUserActivity:(NSUserActivity *)userActivity
 restorationHandler:(void (^)(NSArray *restorableObjects))restorationHandler  
Run Code Online (Sandbox Code Playgroud)

但我无法在NSUserActivity. 如何在我的应用程序中获取通话记录信息?

任何帮助非常感谢。谢谢!

ios swift callkit

2
推荐指数
1
解决办法
2049
查看次数

自定义来电屏幕,如Truecaller IOS

当来电呼叫到达时,是否有可能显示自定义来电屏幕的功能,就像真正的来电应用程序一样.

我已经提到了这个,这说不可能.

我想知道怎么truecaller表现出来custom view.任何有关相同的想法将不胜感激.谢谢

iphone ios callkit

2
推荐指数
1
解决办法
1360
查看次数

CallKit 扩展开始请求

我正在开发一个带有被阻止号码数据库的应用程序。在我的beginRequest方法中,我正在异步连接到我的在线数据库并调用context.completeRequest()完成块。这个方法什么时候调用?Apple 文档对我来说不清楚 - 可以多次调用吗?主要原因是使设备中被阻止的号码列表与我的数据库保持同步。

所以问题:

  1. CallKit 目录处理程序中是否提供异步请求?

  2. beginRequest方法是否被多次调用?

  3. 如何在我的应用程序之外创建像弹出窗口这样的扩展程序,以便在不进入我的应用程序的情况下报告垃圾邮件?就像这里的第三个屏幕截图。

iphone ios swift ios-app-extension callkit

2
推荐指数
1
解决办法
1088
查看次数

如何恢复保持的 CallKit 呼叫

我在 Objective-C 应用程序中使用 CallKit。

我可以使用 CallKit 拨打电话。如果有第二个电话打进来,我成功地将其设置为保留。当我结束第二个通话时,

- (void)provider:(CXProvider *)provider performEndCallAction:(CXEndCallAction *)action
Run Code Online (Sandbox Code Playgroud)

- (void)callObserver:(CXCallObserver *)callObserver callChanged:(CXCall *)call
Run Code Online (Sandbox Code Playgroud)

方法确实会被调用。

但是

 - (void)provider:(CXProvider *)provider performSetHeldCallAction:(CXSetHeldCallAction *)action
Run Code Online (Sandbox Code Playgroud)

方法不会被自动调用。

我是否必须手动触发它,例如通过类似的方法

- (void)performHoldCallActionWithUUID:(NSUUID *)uuid onHold:(BOOL)onHold {
    //...

    CXSetHeldCallAction *holdCallAction = [[CXSetHeldCallAction alloc] initWithCallUUID:uuid onHold:onHold];
    CXTransaction *transaction = [[CXTransaction alloc] initWithAction:holdCallAction];

    [self.callKitCallController requestTransaction:transaction completion:^(NSError *error) {
        //...
    }];
}
Run Code Online (Sandbox Code Playgroud)

或者有没有办法让提供者在用户结束第二个通话时“自动”调用它?

谢谢。

objective-c ios callkit

2
推荐指数
1
解决办法
1680
查看次数

如何删除IOS CallKit中的顶部栏?

我在我的应用程序中使用callkitPushkit。使用 callkit 后,当我的应用程序进入后台时,即使我已断开呼叫,屏幕顶部也会显示红色视图。

如何以编程方式删除此顶部视图。

这是问题的屏幕截图。 在此处输入图片说明

我正在断开电话。使用此链接

CallKit 呼叫断开

objective-c ios callkit

2
推荐指数
1
解决办法
885
查看次数

CallKit 可以在交换呼叫后重新激活声音

我正在开发 CallKit 应用程序,我遇到了一个问题,在 CallKit 屏幕上“交换”呼叫时,呼叫保持无法重新启动音频,直到用户返回应用程序内呼叫屏幕。我可以通过更新绕过这个:

supportsHolding = false
Run Code Online (Sandbox Code Playgroud)

但是我可以解决这个问题,例如whatsapp可以正确地做到这一点!

ps 我正在使用 webrtc 打电话!

谢谢!

编辑:

这是提供者的代码:

public func provider(_ provider: CXProvider, perform action: CXSetHeldCallAction) {

    guard let call = conductor!.callWithUUID(uuid: action.callUUID) else {
        WebRtcConductor.debug("\(self.TAG)  failed to perform HeldAction: uuid: \(action.uuid), calluiid: \(action.callUUID)")
        action.fail()
        return
    }

    setIsHeld(call: call, isHeld: action.isOnHold)
    action.fulfill()
}
Run Code Online (Sandbox Code Playgroud)

setIsHeld 函数只需执行以下操作:

audioTrack.isEnabled = enabled
Run Code Online (Sandbox Code Playgroud)

如果我使用 callkit 屏幕的“静音”按钮,一切正常,但是如果我有 2 个活动呼叫,当我从 webrtc 呼叫滑动到正常呼叫时,会调用 CXSetHeldCallAction 并且音轨被禁用,如果我再次滑动到 webrtc 呼叫,音轨已启用,但我什么也没听到,如果我返回主应用程序屏幕,音频又可以正常工作了!

ios webrtc callkit

2
推荐指数
1
解决办法
1325
查看次数

iOS CallKit广告整合

是否可以在此屏幕中集成广告:

在此处输入图片说明

在“热线音频...”和“提醒我”按钮之间?

integration ads ios callkit

2
推荐指数
1
解决办法
133
查看次数

如何修复 CallKit 目录扩展中的“sqlite3”和其他错误?

context.addIdentificationEntry(withNextSequentialPhoneNumber: contact.number, label: contact.contactLabel)\n该应用程序的想法是将大约 50.000 个联系人添加到 CallKit 目录中,但是当我尝试在方法中添加它们时,beginRequest(with context: CXCallDirectoryExtensionContext)我经常会收到 com.apple.CallKit.error.calldirectorymanager 错误 2 或一些奇怪的 sqlite3 错误:

\n\n
sqlite3_step for query \'INSERT INTO PhoneNumberIdentificationEntry \n(extension_id, phone_number_id, label_id) VALUES (?, (SELECT id \nFROM PhoneNumber WHERE (number = ?)), (SELECT id FROM Label WHERE \n(localized_label = ?))), \n\xe2\x80\xa6\n(SELECT id FROM Label WHERE (localized_label = ?)))\' returned 19 \n(2067) errorMessage \'UNIQUE constraint failed: \nPhoneNumberIdentificationEntry.extension_id, \nPhoneNumberIdentificationEntry.phone_number_id, \nPhoneNumberIdentificationEntry.label_id\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

一般来说,我从服务器获取联系人并尝试使它们保持同步 - 因此,我使用 Realm 将它们保存在本地。有谁知道如何处理此类错误?

\n

sqlite ios swift callkit

2
推荐指数
1
解决办法
732
查看次数