检测用户何时按下“取消” - telprompt - objective-c

9

我之前见过这个问题,但没有真正的答案。

我正在使用以下objective-c代码来开始电话呼叫。

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt:1234567890"]]

这段代码会打开一个包含电话号码、取消按钮和呼叫按钮的对话框。
有没有人知道如何检测是否按下了取消按钮?
如果按下取消按钮,我需要在应用程序中进行一些特殊的安排。
我尝试使用UIAlertView结合@"tel:1234567890"命令,但这不太好。如果使用"tel:"命令,用户将离开应用程序, 这不是我的初衷...
谢谢!
/Henrik

4
请注意,telprompt 不是官方的 URL Scheme。苹果公司可能会在未来的 iOS 版本中删除这个 Scheme。 - rckoenes
请检查此链接:https://dev59.com/22Yr5IYBdhLWcg3wW49t。 - Mudit Bajpai
rckoenes - 我知道telprompt不是官方的scheme。但是,我在这个话题中看到过一些帖子,说他们的应用已经被苹果批准了,所以我希望他们是正确的;-) - Henrik Bengtsson
Mudit Bajpai - 我之前看过那篇帖子。如果我没记错的话,它是在用户完成调用时给出提示,而不是在用户取消调用时。我之前试过一次... - Henrik Bengtsson
@HenrikBengtsson 你找到你的问题的答案了吗?请分享一下。谢谢。 - Zeeshan
1个回答

3
我认为有可能猜测用户在呼叫提示中选择了哪个按钮。
在调用openURL:后,您的应用程序将接收到[AppDelegate applicationWillResignActive:]方法调用。
然后可能出现两种情况:
如果用户选择了呼叫,则会获得[AppDelegate applicationDidEnterBackground:],因为电话应用程序将被打开。
如果用户选择取消,则会接收到[AppDelegate applicationDidBecomeActive:]方法调用。
我认为您可以实现一些单例来保存应用程序状态,并在这些方法中更新它。
祝好运!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接