未调用CallDirectory扩展beginRequestWithExtensionContext

时间:2017-11-22 18:56:26

标签: ios objective-c callkit

我尝试添加CallDirectory扩展程序,以根据我的应用中可用的联系人启用呼叫识别。

我已在“通话设置”下启用了权限。

但即使设备收到呼叫,也不会调用beginRequestWithExtensionContext。

beginRequestWithExtensionContext位于CXCallDirectoryProvider的子类中,符合CXCallDirectoryExtensionContextDelegate

文档说:

  

您可以设置识别和阻止来电   执行beginRequest(with :)方法   您的Call Directory扩展的CXCallDirectoryProvider子类。   系统启动应用程序扩展时会调用此方法。

系统何时启动应用扩展程序?

我在我的代表中设置如下:

[[CXCallDirectoryManager sharedInstance] getEnabledStatusForExtensionWithIdentifier:@"com.x.CallerID" completionHandler:^(CXCallDirectoryEnabledStatus enabledStatus, NSError * _Nullable error) {
            if (enabledStatus == 0) {
                // NSLog(@"Code 0 tells you that there's an error. Common is that the identifierString is wrong.");
            } else if (enabledStatus == 1) {
                DDLogDebug(@"%@",@"CallerID - Code 1 is deactivated extension");
                [self enableCallerIdAlert];
            } else if (enabledStatus == 2) {
                DDLogDebug(@"%@",@"CallerID - Code 2 is an activated extension");
            }
        }];

        [[CXCallDirectoryManager sharedInstance] reloadExtensionWithIdentifier:@"com.x.CallerID" completionHandler:^(NSError *error){
            if(error) {
                NSLog(@"CallerID - refresh failed. error is %@",[error description]);
            }

            //your completetion
        }];

CallDirectoryHAndler.m:

- (void)beginRequestWithExtensionContext:(CXCallDirectoryExtensionContext *)context
{

    [super beginRequestWithExtensionContext:context];

    context.delegate = self;
     //phoneNumber , label are dummy
    [context addIdentificationEntryWithNextSequentialPhoneNumber:phoneNumber label:label];

    [context completeRequestWithCompletionHandler:nil];
}

有人可以指出我在这里失踪的是什么吗?

0 个答案:

没有答案