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:@""];
// 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(@"Start Loading");
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
DLog(@"Finish Loading");
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
DLog(@"Did fail with error : %@", 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]