Then Panda1988 started looking at documentation. I put these comments under the heading, "Incorrect implementation of the openURL method?"
Pande1988, quoted the docs for the canOpenURL: method -
"Returns a Boolean value indicating whether or not the URL’s scheme can be handled by some app installed on the device.
Declaration
SWIFT
func canOpenURL(_ url: NSURL) -> Bool
OBJECTIVE-C
- (BOOL)canOpenURL:(NSURL *)url
Parameters
url
A URL (Universal Resource Locator). At runtime, the system tests the URL’s scheme to determine if there is an installed app that is registered to handle the scheme. More than one app can be registered to handle a scheme.
The URL you pass to this method can have a common scheme or a custom scheme.
Return Value
NO if there is no app installed on the device that is registered to handle the URL’s scheme, or if you have not declared the URL’s scheme in your Info.plist file; otherwise, YES.
Read the Discussion section for more information on conditions that affect the return value.
Discussion
If this method returns YES for a given URL, iOS guarantees that that if the openURL: method is subsequently called using the same URL, an app registered to handle the URL’s scheme will launch to handle it. This method’s return value does not indicate whether or not the full URL is valid or if the specified resource exists.
If your app is linked against an earlier version of iOS but is running in iOS 9.0 or later, you can call this method on 50 distinct URL schemes. After hitting this limit, subsequent calls to this method return NO. If a user reinstalls or upgrades the app, iOS resets the limit.
Unlike this method, the openURL: method is not constrained by the LSApplicationQueriesSchemesrequirement: If an app that handles a scheme is installed on the device, the openURL: method works, whether or not you have declared the scheme."
A reply: "PANDA1988 has a point. To me it appears as if the makers of "canOpenURL" have made a huge mistake in hardcoding the number of times the function can be used system wide. Obviously this has been implemented/changed starting from IOS 9.0 so there must exist a working solution that the developers can revert back to.
Dear developers, trust me, the whole community will give you a cheer once this is fixed.
Dear application developers, please follow the instructions and link your application against the latest version of IOS if you use this function."
Another comment: "It seems to allow you to open links within the same domain, but not across domains.
Go to a website, open an internal page, it works from safari.
Try to open external links, it crashes."
More thought: " I did a check with my old 3GS with IOS 6.1.6. Working perfectly, "
Then someone had been looking and offered this: "apparently it has to do with Universal links and the way apps like Booking register them in iOS: http://techcrunch.com/2016/03/28/its-not-just-you-clicking-on-links-in-ios-9-3-c an-crash-your-iphone/"