Hi, first I'll tell my use case.. then what I'm doing trying to solve it.
## Use Case..
On iOS there's Chrome, Opera, Firefox and default Safari.. And there's a lot of in app browsers today, Facebook, Twitter, Tumblr.. Once a web site is open on in app browsers, they deal with http, https links inside the webview...
My problem is that Facebook Login doesn't support Chrome, so my client has no way to use my web application cause it depends on Facebook Login, Facebook tell the users to open my web site on Safari.. and on Safari it works just great.. In my web app I'd like to say the users this browser (chrome) cannot run my web app, to they need to open my web app on Safari.. Showing a button, touching this button the user will open my web site on Safari.. directly..
I could find how to open Chrome, Firefox and Opera on iOS, but I couldn't find a way to directly open Safari... People say http[s] links will be handled by Safari, but this isn't true.. If the user is already in a browser.. the URL will be handled by the current browser..
I wrote a documentation of my research that may be useful for debugging https://gist.github.com/felquis/a08ee196747f71689dcb
We just need a way to target Safari App to handle a URL, bello with encodeURIComponent('http://example.com')
<a href="safari://http%3A%2F%2Fexample.com">Try it on Safari</a>
If it's an ordinary string, just search for the term in the default search engine
<a href="safari://longboard%20fails">Search on Safari</a>
I read a lot people trying to figure out if a URL Scheme is available in the platform, there should be a way to check for it, cause it is a necessity in modern web application these days..
Thank you, I hope other developers also need it.
Yes, as we recently see some features disabled in webviews such as [Bug 183201], we probably need URI scheme to launch Safari directly from webviews, in addition to x-web-search scheme (which is already implemented).