Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在本机ios应用程序中设置最近的名称字段?-网间网操作系统_Ios_Callkit - Fatal编程技术网

如何在本机ios应用程序中设置最近的名称字段?-网间网操作系统

如何在本机ios应用程序中设置最近的名称字段?-网间网操作系统,ios,callkit,Ios,Callkit,我有一个集成了呼叫套件的voip应用程序。每次我从voip应用程序呼叫时,都会在本机电话应用程序中创建一个新的“最近”。我在voip应用程序中也有自定义联系人(该手机应用程序不知道)。问题是,当我在Phone recents应用程序中呼叫一个自定义联系人时,只会显示一个没有联系人姓名的电话号码 例如,我有电话号码“sip:test”和姓名“test”的自定义联系人。当我在最近的手机应用程序中呼叫此自定义联系人时,仅显示“sip:test” 我作为休耕者开始一个支出电话: CXHandle *st

我有一个集成了呼叫套件的voip应用程序。每次我从voip应用程序呼叫时,都会在本机电话应用程序中创建一个新的“最近”。我在voip应用程序中也有自定义联系人(该手机应用程序不知道)。问题是,当我在Phone recents应用程序中呼叫一个自定义联系人时,只会显示一个没有联系人姓名的电话号码
例如,我有电话号码“sip:test”和姓名“test”的自定义联系人。当我在最近的手机应用程序中呼叫此自定义联系人时,仅显示“sip:test”
我作为休耕者开始一个支出电话:

CXHandle *startCallHandle = [[CXHandle alloc] initWithType:CXHandleTypeGeneric value:@"sip:test"];
CXStartCallAction *startCallAction = [[CXStartCallAction alloc] initWithCallUUID:@"some_UUID" handle:startCallHandle];
CXTransaction *transaction = [[CXTransaction alloc] initWithAction:startCallAction];
[self.callController requestTransaction:transaction completion:nil}];

我的问题是,有没有办法修改手机应用程序中最近的姓名?

您在任何时候都不会告诉提供商该姓名是“Test”,因此系统不知道姓名和显示号码。要在performStartCallAction中向系统通知名称,您需要添加下一个代码:

CXCallUpdate *update = [[CXCallUpdate alloc] init];
[update setRemoteHandle:[[CXHandle alloc] initWithType:CXHandleTypePhoneNumber value:number]];
[update setLocalizedCallerName:name];

[provider reportCallWithUUID:uuid updated:update];

您在任何时候都不会告诉提供者名称是“Test”,因此系统不知道名称和显示编号。要在performStartCallAction中向系统通知名称,您需要添加下一个代码:

CXCallUpdate *update = [[CXCallUpdate alloc] init];
[update setRemoteHandle:[[CXHandle alloc] initWithType:CXHandleTypePhoneNumber value:number]];
[update setLocalizedCallerName:name];

[provider reportCallWithUUID:uuid updated:update];

更新名称正在工作,但现在当我点击“最近”时,不会调用“continueUserActivity:”应用程序委托方法。您是否在continueUserActivity中使用getStartCallHandle读取StartCallHandle?如果不是,则使用
NSString*handle=[userActivity getStartCallHandle]。编辑:您将rcvd@“sip:test”continueUserActivity:delegate方法根本不被调用。抱歉,我没有正确阅读您的问题,当您点击“最近”时,您的
didfinishlaunching
是否返回YES?didfinishlaunching方法始终返回YES。不管怎样,我做了更多的测试,这似乎是iOS 11 beta 4版的问题,因为在早期版本中,一切都正常。更新名称正常,但现在当我点击“最近”时,不会调用“continueUserActivity:”App delegate方法。您是否在continueUserActivity中阅读了StartCallHandle和getStartCallHandle?如果不是,则使用
NSString*handle=[userActivity getStartCallHandle]。编辑:您将rcvd@“sip:test”continueUserActivity:delegate方法根本不被调用。抱歉,我没有正确阅读您的问题,当您点击“最近”时,您的
didfinishlaunching
是否返回YES?didfinishlaunching方法始终返回YES。不管怎样,我做了更多的测试,这似乎是iOS 11 beta 4版的问题,因为在早期版本中,一切都很好。