Maison >interface Web >js tutoriel >JS extrait ou télécharge le code d'implémentation de l'application
Le produit propose une exigence. Utilisez la page Web mobile pour déterminer si l'application de votre entreprise est installée. Si elle est installée, lancez l'application. Si elle n'est pas installée, elle passera à la page de téléchargement.
Après plusieurs tentatives pour vérifier les informations, j'ai trouvé une méthode assez acceptable.
Le principe du lancement de l'application est d'unifier les adresses js et natives en une seule adresse par exemple (qiyimobile://self/qiyi.madeindexpage). Le navigateur lance alors une requête si l'application est installée, il interceptera la requête et l'ouvrira.
Ce qui suit est la configuration du code Android. En fait, le schéma et l'hôte doivent être unifiés avec le côté js
<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>
le côté js est un peu plus gênant. S'il est plus facile de simplement lancer l'application, connectez-vous simplement directement via un ou window.location.href="**". Cependant, il y a un problème ici, c'est-à-dire que certains téléphones mobiles reconnaîtront le protocole que nous avons défini auparavant et essaieront d'ouvrir la page Web lorsque l'application n'est pas installée. Bien sûr, ils signaleront que la page Web est introuvable. La méthode iframe utilisée ici a une compatibilité légèrement meilleure.
var ifr = document.createElement('iframe'); ifr.src = 'qiyimobile://self/qiyi.madeindexpage'; document.body.appendChild(ifr);
Lorsque l'application n'est pas installée sur le téléphone, vous devez accéder à la page de téléchargement. Beaucoup de gens disent que vous pouvez accéder directement après un certain temps. , comme suit
window.location.href=“打开地址” setTimeout(function() { window.location.href=“下载地址” }, 500);
Bien sûr, cela pose également problème, car certains téléphones mobiles n'effaceront pas automatiquement la minuterie lors du lancement de l'application, c'est-à-dire que l'application soit installée ou non, la page s'affichera après 500 ms. Accédez à la page de téléchargement. Donc, déterminer si vous devez accéder à la page de téléchargement est la chose la plus difficile. Enfin, essayer ce qui suit est une meilleure solution.
Définissez une heure initiale. Après avoir ouvert et récupéré l'adresse de l'application, il y aura une heure de fin. Calculez la différence entre les deux. Lorsque la différence est supérieure à une certaine heure, cela signifie que l'application est installée. Lorsque la différence est faible, cela signifie que l'application n'est pas ouverte et que vous devez accéder à la page de téléchargement.
Le code final est le suivant
downloadapp.addEventListener('click', function() { var start = new Date();//记录初始时间 var t = 500; var ifr = document.createElement('iframe'); ifr.src = 'qiyimobile://self/qiyi.madeindexpage';//打开app document.body.appendChild(ifr); ifr.onload = function() { }; ifr.style.display='none'; 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); })
Ce qui précède est le code d'implémentation JS pour extraire ou télécharger l'application introduite par le éditeur. J'espère que cela vous sera utile. Si vous avez des questions, laissez-moi un message et je vous répondrai à temps. Je voudrais également vous remercier tous pour votre soutien au site Web PHP chinois !
Pour plus d'articles liés à l'implémentation du code JS lors de l'extraction ou du téléchargement de l'application, veuillez faire attention au site Web PHP chinois !