Von einer Website zur Android App umleiten?

Wenn ein Benutzer eine Website öffnet, möchte ich, dass einer der beiden folgenden Fälle eintritt:

Wenn die App mycoolapp installiert ist, leiten Sie den Benutzer mithilfe des benutzerdefinierten URL-Schemas mycoolapp: // @ an die App weiteWenn die App nicht installiert ist, bleiben Sie auf der aktuellen Seite, ohne eine unbekannte Seite oder ein Fehler-Popup zu veröffentlichen oder weiterzuleiten.

Case 1 ist einfach, Sie können den folgenden Code verwenden:

window.location = "mycoolapp://"; 

Dies funktioniert, wenn die App auf dem Gerät installiert ist. Wenn die App nicht installiert ist, wird der Benutzer auf eine leere Seite umgeleitet, die unbekannt ist.

Für Fall 2 habe ich eine Lösung mit einem iFrame, der unter iOS und im nativen Android-Browser hervorragend funktioniert. Chrome für Android funktioniert nicht.

var redirect = function (location) {
    var iframe = document.createElement('iframe');
    iframe.setAttribute('src', location);
    iframe.setAttribute('width', '1px');
    iframe.setAttribute('height', '1px');
    iframe.setAttribute('position', 'absolute');
    iframe.setAttribute('top', '0');
    iframe.setAttribute('left', '0');
    document.documentElement.appendChild(iframe);
    iframe.parentNode.removeChild(iframe);
    iframe = null;
};    

redirect('mycoolapp://');

Wenn die App installiert ist, funktioniert sie im nativen Android-Browser, unter Chrome für Android wird sie jedoch nicht umgeleitet. Auf der Seite passiert nichts.

Wie kann ich unter Chrome für Android eine Weiterleitung zu meiner App vornehmen, ohne auf eine leere Seite umzuleiten, wenn die App nicht installiert ist?

Bearbeiten Ich weiß, dass Sie einen Intent @ verwenden könn

window.location = "intent://#Intent;package=com.mycoolapp;scheme=mycoolapp;launchFlags=268435456;end;";

Das ist nicht das, was ich will, weil es die App-Seite bei Google Play startet, wenn die App nicht installiert ist. Gibt es eine Möglichkeit, dass Google Play nicht weitergeleitet wird?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage