菜鸟教程小白 发表于 2022-12-12 09:43:20

ios - 委托(delegate)知道由应用程序发起的电话何时结束


                                            <p><p>我有一个使用以下代码调用电话的代码:</p>

<pre><code>// Make a call to given phone number
- (void)callPhoneNumber:(NSString *)phoneNumber
{
    if (!self.webview)
      self.webview = [ init];
    self.webview.delegate = self;

    // Remove non-digits from phone number
    phoneNumber = [ invertedSet]] componentsJoinedByString:@&#34;&#34;];

    // Make a call
    NSURL * url = ];
    ];
    ;
}
</code></pre>

<p>这会打电话。我想要的是,<em>我想知道用户何时结束通话</em>。当用户结束通话时,我必须执行操作。有什么办法吗?</p>

<p>我尝试的是,我将 <code>webview</code> 的委托(delegate)设置为当前 Controller 。但是没有调用任何委托(delegate)方法。</p>

<pre><code>- (void)webViewDidStartLoad:(UIWebView *)webView
{
    DLog(@&#34;Start Loading&#34;);
}

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    DLog(@&#34;Finish Loading&#34;);
}

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
    DLog(@&#34;Did fail with error : %@&#34;, error);
}
</code></pre>

<p>我不知道您是否需要此信息,但我使用 webview,以便在调用电话时,流程仍保留在应用程序内,并且在通话结束时,会显示应用程序屏幕,而不是用户从 native 联系人应用程序手动进入应用程序.</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p><code>CoreTelephony</code> 框架有一个带有 <code>callEventHandler</code> 属性的 <code>CTCallCenter</code> 类。</p>

<pre><code>@property (nonatomic, copy) void (^callEventHandler)(CTCall*);
</code></pre>

<p>您必须在应用程序中定义一个处理程序 block 并将其分配给此属性。
如果您的应用程序在调用事件发生时处于事件状态,则系统会在调用状态更改时立即将该事件分派(dispatch)给您的处理程序。引用发现的苹果文档<a href="https://developer.apple.com/library/ios/documentation/NetworkingInternet/Reference/CTCallCenter/Reference/Reference.html#//apple_ref/occ/instp/CTCallCenter/callEventHandler" rel="noreferrer noopener nofollow">here.</a> </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 委托(delegate)知道由应用程序发起的电话何时结束,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/23491047/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/23491047/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 委托(delegate)知道由应用程序发起的电话何时结束