Heim >Web-Frontend >js-Tutorial >JS ruft den App-Implementierungscode auf oder lädt ihn herunter

JS ruft den App-Implementierungscode auf oder lädt ihn herunter

高洛峰
高洛峰Original
2017-02-23 17:23:451718Durchsuche

Das Produkt stellt eine Anforderung dar. Verwenden Sie die mobile Webseite, um festzustellen, ob die App Ihres Unternehmens installiert ist. Wenn sie nicht installiert ist, wird zur Download-Seite gesprungen.

Nach mehreren Versuchen, die Informationen zu überprüfen, kam ich auf eine einigermaßen akzeptable Methode.

Das Prinzip beim Starten der App besteht darin, die js- und nativen Adressen in einer Adresse zu vereinen, zum Beispiel (qiyimobile://self/qiyi.madeindexpage). Der Browser initiiert dann eine Anfrage. Wenn die App installiert ist, fängt er die Anfrage ab und öffnet sie.

Das Folgende ist die Android-Codekonfiguration. Tatsächlich müssen das Schema und der Host mit der js-Seite vereinheitlicht werden

<span style="font-size:18px;"><intent-filter> 
        <action android:name="android.intent.action.VIEW" /> 
        <category android:name="android.intent.category.DEFAULT" /> 
        <category android:name="android.intent.category.BROWSABLE" /> 
        <data  
      android:scheme="qiyimobile"  
      android:host="self/qiyi.madeindexpage"  
      android:pathPrefix="/**"> 
     </data> 
</intent-filter></span>

js-Seite ist etwas problematischer. Wenn es einfacher ist, die App einfach zu starten, stellen Sie einfach eine direkte Verbindung über ein oder window.location.href="**" her. Allerdings gibt es hier ein Problem: Einige Mobiltelefone erkennen das zuvor festgelegte Protokoll und versuchen, die Webseite zu öffnen, wenn die App nicht installiert ist. Natürlich melden sie, dass die Webseite nicht gefunden werden kann. Die hier verwendete Iframe-Methode weist eine etwas bessere Kompatibilität auf.

 var ifr = document.createElement(&#39;iframe&#39;);
 ifr.src = &#39;qiyimobile://self/qiyi.madeindexpage&#39;;
 document.body.appendChild(ifr);

Wenn die App nicht auf dem Telefon installiert ist, sollten Sie nach einer Verzögerung direkt zur Download-Seite springen , wie folgt

window.location.href=“打开地址”
 setTimeout(function() {  
  window.location.href=“下载地址”
      }, 500);

Dies ist natürlich auch problematisch, da einige Mobiltelefone den Timer beim Starten der App nicht automatisch löschen, d. h. Unabhängig davon, ob die App installiert ist oder nicht, wird die Seite nach 500 ms angezeigt. Zur Download-Seite springen. Daher ist es am schwierigsten zu beurteilen, ob Sie zur Download-Seite springen müssen. Schließlich ist es eine bessere Lösung, Folgendes auszuprobieren.

Stellen Sie eine Anfangszeit ein. Nach dem Öffnen und Aufrufen der App-Adresse wird eine Endzeit berechnet. Wenn die Differenz größer als eine bestimmte Zeit ist, bedeutet dies, dass die App installiert ist . Wenn der Unterschied gering ist, bedeutet das, dass die App nicht geöffnet ist und Sie zur Download-Seite springen müssen.

Der endgültige Code lautet wie folgt

downloadapp.addEventListener(&#39;click&#39;, function() {
      var start = new Date();//记录初始时间
      var t = 500;
      var ifr = document.createElement(&#39;iframe&#39;);
      ifr.src = &#39;qiyimobile://self/qiyi.madeindexpage&#39;;//打开app
      document.body.appendChild(ifr);
      ifr.onload = function() {
      };
      ifr.style.display=&#39;none&#39;;
      setTimeout(function() {
        document.body.removeChild(ifr);
        var end = new Date();//记录结束时间
        console.log(end - start)
        if (end - start <= (t + 30)) {//两者之差小于30ms时跳转到下载页
          window.location.href = "https://www.baidu.com"
        }
      }, t);
    })

Das Obige ist der JS-Implementierungscode zum Aufrufen oder Herunterladen der von der eingeführten App Herausgeber. Ich hoffe, es ist hilfreich für Sie, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte mich auch bei Ihnen allen für Ihre Unterstützung der chinesischen PHP-Website bedanken!

Weitere Artikel zum Implementierungscode von JS zum Aufrufen oder Herunterladen der App finden Sie auf der chinesischen PHP-Website!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn