我正在尝试使用以下方式从我的iOS应用中拨打电话时遇到问题:
UIApplication open(_:options: completionHandler:)
iOS通过两个按钮Call& amp;显示启动呼叫前的确认弹出/警报。根据iOS 10中的按钮操作,使用具有true / false的Bool参数调用Cancel和CompletionHandler。
但是现在在iOS11中,问题是在点击确认弹出窗口的“取消”或“呼叫”按钮之前会自动调用completionHandler,总是具有真正的价值。
这是iOS11中的错误还是我做错了?
答案 0 :(得分:1)
在iOS 11中调用闭包时出现了行为更改。我不能说这个行为是否会被还原或者这是一个错误。 但是,您可以确定用户何时与弹出窗口交互的方法之一是在openURL()的完成闭包中围绕UIApplicationDidBecomeActive添加通知侦听器。要确定是否单击了呼叫,您需要在CTCallCenter上创建另一个自定义通知和侦听器。这是我能够识别它的最佳方式,但可能有更好的解决方案:D
答案 1 :(得分:0)
如果您的给定URL成功或失败,则completionHandler将接到一个电话,这与取消&警报
上的呼叫按钮了解Apple文档对此有何评论HERE
completionHandler
要执行结果的块。提供一个 如果您想要获知成功或,请参阅此参数的值 打开URL失败。该块以异步方式执行 你的应用程序的主要线程。该块没有返回值并且需要 以下参数:
成功
指示URL是否为的布尔值 成功开业。