尝试使用iOS 11上的tel://方案拨打电话号码时提示

时间:2017-08-31 11:53:53

标签: ios11 swift4 openurl xcode9-beta tel

我正在尝试使用以下方式从我的iOS应用中拨打电话时遇到问题:

UIApplication open(_:options: completionHandler:)

iOS通过两个按钮Call& amp;显示启动呼叫前的确认弹出/警报。根据iOS 10中的按钮操作,使用具有true / false的Bool参数调用Cancel和CompletionHandler。

但是现在在iOS11中,问题是在点击确认弹出窗口的“取消”或“呼叫”按钮之前会自动调用completionHandler,总是具有真正的价值。

这是iOS11中的错误还是我做错了?

2 个答案:

答案 0 :(得分:1)

在iOS 11中调用闭包时出现了行为更改。我不能说这个行为是否会被还原或者这是一个错误。 但是,您可以确定用户何时与弹出窗口交互的方法之一是在openURL()的完成闭包中围绕UIApplicationDidBecomeActive添加通知侦听器。要确定是否单击了呼叫,您需要在CTCallCenter上创建另一个自定义通知和侦听器。这是我能够识别它的最佳方式,但可能有更好的解决方案:D

答案 1 :(得分:0)

如果您的给定URL成功或失败,则completionHandler将接到一个电话,这与取消&警报

上的呼叫按钮

了解Apple文档对此有何评论HERE

  

completionHandler

     

要执行结果的块。提供一个   如果您想要获知成功或,请参阅此参数的值   打开URL失败。该块以异步方式执行   你的应用程序的主要线程。该块没有返回值并且需要   以下参数:

     

成功

     

指示URL是否为的布尔值   成功开业。

相关问题