My question is about iOS9 only!
I have an HTML landing page, and I try to redirect the user to my app via URL scheme if the app is installed, or redirect to the Appstore otherwise.
My code is:
document.addEventListener("DOMContentLoaded", function(event) {    var body = document.getElementsByTagName('body')[0];   body.onclick = function () {     openApp();   }; });  var timeout;  function preventPopup() {      clearTimeout(timeout);     timeout = null;     window.removeEventListener('pagehide', preventPopup); }  function openApp(appInstanceId, platform) {    window.addEventListener('pagehide', preventPopup);   document.addEventListener('pagehide', preventPopup);    // create iframe   var iframe = document.createElement("iframe");   document.body.appendChild(iframe);   iframe.setAttribute("style", "display:none;");   iframe.src = 'myscheme://launch?var=val';    var timeoutTime = 1000;   timeout = setTimeout(function () {      document.location = 'https://itunes.apple.com/app/my-app';    }, timeoutTime); }   The problem is that the iframe trick doesn't work in Safari iOS9.
Any idea why?
My iframe trick based on this answer.
The iframe trick no longer works -- my guess is that Apple knows it will encourage more developers to implement Universal Links, more quickly.
You can still set window.location='your-uri-scheme://'; and fallback to the App Store after 500ms. There is a "dance" between popups if you take this approach, as we do at Branch (we do as a fallback if Universal Links don't work). 
window.location = 'your-uri-scheme://'; // will result in error message if app not installed setTimeout(function() {    // Link to the App Store should go here -- only fires if deep link fails                    window.location = "https://itunes.apple.com/us/app/myapp/id123456789?ls=1&mt=8"; }, 500);   I wish I had a better answer for you. iOS 9 is definitely more limited.
For a helpful overview of what's needed for Universal Links should you go that route, check out my answer here or read this tutorial
As already mentioned setting window.location on iOS 9 still works. However, this brings up an Open in App dialog. I've put an example on https://bartt.me/openapp that:
Look at the source of https://lab.bartt.me/openapp for more information.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With