2012-07-29 3 views
5

Gli utenti possono condividere file dalla nostra app tramite Twitter. Il tweet include un URL che punta al nostro server, che rileva se l'utente si trova su un dispositivo mobile e reindirizza a un URL utilizzando lo schema personalizzato della nostra app in modo che il link si apra nella nostra app.Posso creare un collegamento che si aprirà nella mia app se è installato e, se no, ricorrere a un URL diverso?

Questo funziona perfettamente per gli utenti desktop e per gli utenti mobili che hanno installato la nostra app; ma non funziona per gli utenti mobili che non lo fanno. Quindi quello che vorremmo fare è mostrare a tutti gli utenti una pagina che contiene un link che, se premuto, aprirà l'app con lo schema URL personalizzato, se supportato, e aprirà un URL diverso dove l'utente può scaricare il nostro app se non.

Quindi quello che sto cercando è una risposta in HTML o JS che sembra un po 'come questo:

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

è possibile? Se è così, come lo facciamo?

+0

[questo sembra abbastanza semplice per me] (http://stackoverflow.com/a/1109200/612202) –

risposta

3

È possibile raggiungere questo obiettivo in Android utilizzando il seguente pezzo di codice:

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); 
} 

Chiamare la funzione openLink() al clic di un link (altrimenti il ​​browser bloccherà la nuova finestra pop-up).

iOS differirebbe a causa del modo in cui gestisce gli schemi personalizzati.

Per iOS è necessario effettuare le seguenti operazioni: creare 2 file HTML con il seguente codice frammenti

File # 1: Questo è il tuo collegamento per aprire l'applicazione/fallback al sito

<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')"> 

File # 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 questo aiuta :)

+0

La nostra è un'app per iOS, ma grazie per l'informazione. – Simon

+0

Sicuramente ci sono ottimizzazioni e miglioramenti possibili nel codice, ma questo funziona bene. –

+0

@Simon si prega di controllare il codice aggiornato –