问题
After updating to 10.3, my app no longer automatically dials a phone number after pressing the call button in my app using the openURL: options: completionHandler: method.
Instead, a prompt comes up every time to confirm the user's intentions.
As per the Apple Documentation:
The tel URL scheme is used to launch the Phone app on iOS devices and initiate dialing of the specified phone number. When a user taps a telephone link in a webpage, iOS displays an alert asking if the user really wants to dial the phone number and initiates dialing if the user accepts. When a user opens a URL with the tel scheme in a native app, iOS does not display an alert and initiates dialing without further prompting the user. However, a native app can be configured to display its own alert.
According to this, the prompt displays for webpages but doesn't display in a native iOS app.
Could this be a bug in 10.3? Or is there a new function I need to use or a new property to include in the info.plist I do not know about?
Thanks.
回答1:
This is listed as a known issue in the 10.3 release notes.
https://developer.apple.com/library/content/releasenotes/General/RN-iOSSDK-10.3/
openURL
When a third party application invokes openURL: on a tel://, facetime://, or facetime-audio:// URL, iOS displays a prompt and requires user confirmation before dialing.
It is also listed in the Security content of the 10.3 update, so I'm assuming this a new feature that is here to stay.
An issue existed in iOS allowing for calls without prompting. This issue was addressed by prompting a user to confirm call initiation.
回答2:
This is not the first time, Apple developers have reactivated this alert for url schemes? I remember that they did this kind activation, even in few other earlier updates, and they rolled back in the next OS update.
In the case of 10.3.1, I read a news that in the US there were many 911 calls fraudulently dialed. https://9to5mac.com/2017/03/06/911-ios-exploit/
In my opinion, the alert restriction has been incorporated to put stop for wrong 911 dials.
I am confident that, Apple cannot enforce this kind of arbitrary changes to API's/Schemes quite often and then, which is largely affecting the user's experience.
I have a Speed Dial App in the store for the last 8 years. https://itunes.apple.com/us/app/speed-dial/id306569903?ls=1&mt=8# In the last few weeks, so many users are complaining about this new restriction of one more touch on the speed dial.
For now, we have to wait until Apple fixes this known issue in the next update. Because, there are 100s productivity apps, which rely on the URL scheme and no alert scheme.
来源:https://stackoverflow.com/questions/43121740/prompt-when-trying-to-dial-a-phone-number-using-tel-scheme-on-ios-10-3