菜鸟教程小白 发表于 2022-12-12 22:18:39

ios - CXProviderDelegate 方法没有被触发


                                            <p><p>我正在尝试将 CallKit 集成到我的 Voip 应用程序中。我引用了 Apple WWDC 中的 SpeakerBox 示例代码。我创建了一个 ProviderDelegate 类,在调用 <code>reportNewIncomingCall</code> 方法后我可以看到来电 UI。</p>

<p>但是当我点击“回答”/“结束”按钮时,相应的提供者代表不会被解雇。这里有什么问题?</p>

<p>请注意,当我实例化 <code>CallProviderDelegate</code> 时会调用“<code>providerDidBegin</code>”。</p>

<pre><code>@implementation CallProviderDelegate

- (instancetype)init
{
    self = ;
    if (self) {
      _providerConfiguration = ;
      _provider = [ initWithConfiguration:_providerConfiguration];
      ;
    }
    return self;
}

- (void)providerDidBegin:(CXProvider *)provider {
   // this is getting called
}

- (void)provider:(CXProvider *)provider performAnswerCallAction:(CXAnswerCallAction *)action {
// this is not getting called when the Answer button is pressed
}

- (void)reportNewIncomingCallWithUUID:(nonnull NSUUID *)UUID handle:(nonnull NSString *)handle
                           completion:(nullable void (^)(NSError *_Nullable error))completion {

    CXCallUpdate *update = [ init];
    update.remoteHandle = [ initWithType:CXHandleTypePhoneNumber value:handle];
    update.hasVideo = NO;

    [_provider reportNewIncomingCallWithUUID:UUID update:update completion:^(NSError * _Nullable error) {
      completion(error);
    }];
}
</code></pre>

<p>在调用者类中:</p>

<pre><code>CallProviderDelegate *providerDelegate = [ init];
handle:@&#34;Raj&#34; completion:^(NSError * _Nullable error) {
            //
}];
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>在您的“调用者”类中,即您在其中实例化 <code>CallProviderDelegate</code> 类并将其分配给 <code>providerDelegate</code> 变量的代码中,您是否存储了 <code>providerDelegate </code> 实例变量或属性中的对象引用?如果只是分配给一个临时的局部变量,那么<code>CallProviderDelegate</code>对象将在调用方法执行完毕后被释放,如果<code>CallProviderDelegate</code>对象被释放则不再CXProvider 委托(delegate)消息将被传递。</p>

<p>我会先检查您的 <code>CallProviderDelegate</code> 对象是否被意外释放。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - CXProviderDelegate 方法没有被触发,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/39845522/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/39845522/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - CXProviderDelegate 方法没有被触发