1

I have found multiple solutions to prevent an iOS web app from opening normal links in mobile Safari, unfortunately they do not work for links containing parameters, e.g.

href="index.php?s=example"

These are still opened in mobile Safari.

The shortest solution for normal links I have found thus far can be found here at stackoverflow. Maybe someone can modify that script?

Community
  • 1
  • 1
smueller
  • 11
  • 1
  • 2
  • Possible duplicate of [Webapp for iphone switches from home screen to Safari when url parameters are used](http://stackoverflow.com/questions/8476662/webapp-for-iphone-switches-from-home-screen-to-safari-when-url-parameters-are-us) – nkron Nov 21 '15 at 20:12

1 Answers1

2

Try 4 years old github gist. I used it and it works. You can use it by bower:

bower install --save iosweblinks

May be you have javascript errors on page and handlers do not call?

P.S. My modified script for prevent opening links in Safari in standalone mode:

(function (standalone) {

    if (!standalone) {
        return;
    }

    document.addEventListener('click', function (e) {
        var element = e.target,
            href = '';

        while (!/^(a|html)$/i.test(element.nodeName)) {
            element = element.parentNode;
        }

        if (element.getAttribute) {
            href = element.getAttribute('href');

            if ('' !== href && '#' !== href && null !== href && (!element.protocol || element.protocol !== 'tel:')) {
                e.preventDefault();
                window.location = element.href;
            }
        }
    }, false);

}(window.navigator.standalone));
Alex
  • 11,115
  • 12
  • 51
  • 64