作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为我的应用程序使用 CallKit。
- (void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload forType:(NSString *)type withCompletionHandler:(nonnull void (^)(void))completion
{
NSDictionary *payloadDict = payload.dictionaryPayload[@"aps"];
[self reportIncomingCallFrom:callerName withUUID:self.uuidCallkit completion:^(NSError * _Nullable error) {
}];
if (completion) {
completion();
}
}
我的问题是:我应该写ifcompletion然后调用completion,还是直接调用completion();
?那么哪个是正确的?
- (void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload forType:(NSString *)type withCompletionHandler:(nonnull void (^)(void))completion
{
NSDictionary *payloadDict = payload.dictionaryPayload[@"aps"];
[self reportIncomingCallFrom:callerName withUUID:self.uuidCallkit completion:^(NSError * _Nullable error) {
}];
completion();
}
这是来电报告的方法。
- (void)reportIncomingCallFrom:(NSString *) from withUUID:(NSUUID *)uuid completion:(nullable void (^)(NSError *_Nullable error))completion
{
CXHandle *callHandle = [[CXHandle alloc] initWithType:CXHandleTypeGeneric value:from];
CXCallUpdate *callUpdate = [[CXCallUpdate alloc] init];
callUpdate.remoteHandle = callHandle;
callUpdate.supportsDTMF = YES;
callUpdate.supportsHolding = NO;
callUpdate.supportsGrouping = NO;
callUpdate.supportsUngrouping = NO;
callUpdate.hasVideo = NO;
NSLog(@"income uuid here for income call %@",uuid);
[self.callKitProvider reportNewIncomingCallWithUUID: uuid update:callUpdate completion:^(NSError *error) {
if (!error) {
NSLog(@"Incoming call successfully reported.");
} else {
NSLog(@"Failed to report incoming call successfully: %@.", [error localizedDescription]);
}
completion(error);
}];
}
有时我在后台收不到推送。
我想知道我上面的方法是否正确。
最佳答案
在这种情况下,直接调用completion()
或者之前检查是否不是nil
,是等价的,因为completion
已经声明为非空
。
因此,您可以直接调用 completion()
,如果您遇到问题,那不是因为这个。
关于ios - 如何使用 PushKit 的完成处理程序来报告NewIncomingCallWithUUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59067692/
我是一名优秀的程序员,十分优秀!