2012-07-29 4 views
5

Benutzer können Dateien von unserer App über Twitter teilen. Der Tweet enthält eine URL, die auf unseren Server zeigt, der erkennt, ob sich der Nutzer auf einem Mobilgerät befindet, und mithilfe des benutzerdefinierten Schemas unserer App zu einer URL weiterleitet, sodass der Link in unserer App geöffnet wird.Kann ich einen Link erstellen, der in meiner App geöffnet wird, wenn er installiert ist, und auf eine andere URL zurückgreifen, wenn nicht?

Dies funktioniert gut für Desktop-Benutzer und für mobile Benutzer, die unsere App installiert haben; aber es funktioniert nicht für mobile Benutzer, die das nicht tun. Wir möchten stattdessen allen Benutzern eine Seite zeigen, die einen Link enthält, der, wenn er gedrückt wird, die App mit dem benutzerdefinierten URL-Schema öffnet, sofern er unterstützt wird, und eine andere URL öffnet, über die der Benutzer unsere URL herunterladen kann App wenn nicht.

Also, was ich suche, ist eine Antwort in HTML oder JS, die ein bisschen wie folgt aussieht:

<a href="ourapp://www.ourdomain.com/files/12345" 
    fallbackhref="http://www.ourdomain.com/buyourapp">Click to download</a> 

Ist das möglich? Wenn ja, wie machen wir das? mit dem folgenden Stück Code

+0

[das sieht ganz einfach zu mir] (http://stackoverflow.com/a/1109200/612202) –

Antwort

3

Sie können dies in Android erreichen:

function openLink() { 
    var appWindow = window.open("ourapp://www.ourdomain.com/files/12345","_blank"); 
    setTimeout(function() {if (appWindow) { 
     appWindow.location ="http://www.ourdomain.com/buyourapp"; 
      } 
      },1000); 
} 

Rufen Sie die openLink() Funktion auf Klick auf einen Link (sonst wird der Browser das neue Fenster als Popup-Block).

iOS würde sich aufgrund der Art und Weise unterscheiden, wie benutzerdefinierte Schemas verarbeitet werden.

Für iOS müssen Sie Folgendes tun: erstellen 2 HTML-Dateien mit dem folgenden Code

Datei # 1 Schnipsel: Diese Ihr Link ist

die App/Rückgriff auf Website zu öffnen
<script type="text/javascript"> 
function openLink (url,customURI) { 
    window.open("file2.html?lp="+url+"&customURI="+customURI,"_blank"); 
} 
</script> 
<img src="IMAGE SOURCE" onclick="openLink('LANDING PAGE','CUSTOM URI')"> 

Datei # 2:

<html> 
<script> 
function openApp() { 
    var start, end, elapsed; 
    var params = window.location.href.split("lp=")[1]; 
    var url  = params.split("&customURI=")[0]; 
    var customURI  = params.split("&customURI=")[1]; 
    var time = (new Date()).getTime(); 
    document.location  =  customURI+url;   
    setTimeout(function(){ 
      var now = (new Date()).getTime(); 
      if((now - time)<2550) { 
      javascript: console.log(new Date().getTime()); 
          document.location = url; 
      } 
      else{ 
      window.open('', '_self', ''); 
        window.close(); 
     } 
    }, 2000); 

} 
</script> 
<body onload="openApp()"> 
    <a onclick="openApp()" id="newButton">Click Here to open the App</a> 
</body> 

Hop e das hilft :)

+0

Unseres ist eine iOS App, aber danke für die Informationen. – Simon

+0

Sicherlich gibt es Optimierungen und Verbesserungen im Code, aber das funktioniert gut. –

+0

@Simon Bitte überprüfen Sie den aktualisierten Code –