2017-02-03 4 views
2

Beginnen wir mit dem Hintergrund. Wir erstellen eine App unter iOS/Android/Windows, in der wir Dynamic Links von Firebase verwenden, um Inhalte zwischen Benutzern zu teilen (der Link sieht so aus: https://xya.app.goo.gl?link=...). Auf iOS & Android kann dies die App starten, wenn sie installiert ist, oder Play/Store öffnen, falls noch nicht installiert. Dies hat auch den Vorteil eines eleganten Rückgriffs auf unsere Web-App.Open UWP App von der Website

Jetzt wird dies nicht nativ von Windows unterstützt. Es gibt nur folgende Optionen:

  • Benutzerdefinierte URI-Schemas (z. B. app: // some-link). Nicht verwendbar, da es keinen vernünftigen Fallback zu unserem Web-URI-Handler geben würde - da die Anniversary Update-App einen Handler für den regulären http-URI registrieren kann.
  • Wieder nicht verwendbar, weil wir die Domain http://goo.gl nicht besitzen, die
  • für den Link verwendet wird

Dies führt mich links nach nur einem praktikable Option - auf unserer Web-App, erkennt, wenn der Benutzer auf Windows. Ist dies der Fall, überprüfen Sie, ob die App installiert ist, und starten Sie sie oder den Windows Store, damit der Benutzer sie herunterladen kann.

Ist mein Denken richtig? Wenn ja, wie starte ich meine App/Store über die Web App? Es sollte möglich sein, es funktioniert mit Store (wenn Sie zu Windows Store navigieren - z. B. https://www.microsoft.com/en-gb/store/p/ ... - es öffnet die Store-App)

Irgendwelche Ideen? Ich brauche zwei Gedanken - zu erkennen, ob die App installiert ist & starten

Antwort

1

Wenn Sie auf einen URI mit einem benutzerdefinierten URI-Schema klicken, aber es gibt keine registrierte Anwendung in Windows für dieses URI-Schema, wird es aufgefordert, eine unterstützte App herunterzuladen aus dem Laden. Sie können es mit einer Verbindung zu z.B. app: // test (die Verbindung zu nicht-http (s) -Websites scheint in StackOverflow nicht zu funktionieren, aber Sie können dafür einen einfachen HTML-Test erstellen).

<html> 
<body> 
    <a href="app://test">Test link</a> 
    <a href="twitter://">Open twitter</a> 
</body> 
</html> 

Wenn eine App zu handhaben, dass URI-Schema es es öffnet installiert ist, so dass Sie, wenn Sie auf Windows 10 im Prinzip (der eine HTML/JS Frage, die ich denke, ist) sind erkennen müssen. Und ich denke, dass dies auch der Windows Store ist. Da die Store-App nicht für jede App geöffnet wird (z. B. nicht für WP8.1-Apps, wenn Sie sich auf einem W10-Desktop befinden), würde ich vermuten, dass die Website überprüft wird.

+1

Dies trifft nicht für alle Browser zu, z.B. In Firefox wird es eine Seite "Protokoll nicht verstanden" zeigen und auf Chrome tut es nichts (afaik). –

+0

Aber ich fand diese lib, die verwendet werden kann, um festzustellen, ob ein benutzerdefiniertes URI-Schema mit jeder App verbunden ist, über den Browser: https://github.com/ismailhabib/custom-protocol-detection –

+0

True Point über Firefox, nicht getestete Chrome-Ursache nicht installiert. Aber das ist schlecht von den Browser-Entwicklern, sollte es trotzdem an das System delegieren ... – schumi1331