この記事の例では、js を使用して特定のアプリがモバイル端末にインストールされているかどうかを判断するさまざまな方法を説明し、参考として皆さんと共有します。具体的な内容は次のとおりです。
最初の方法:
1: どのような種類の機器であるかを決定します
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //android终端或者uc浏览器 var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
2: Android デバイス: 原則: プロトコルを知っているかどうかを判断します。知らない場合は、ここからアプリをダウンロードしてください。
android(); if(isAndroid){ function android(){ window.location.href = "openwjtr://com.tyrbl.wjtr"; /***打开app的协议,有安卓同事提供***/ window.setTimeout(function(){ window.location.href = "http://www.wjtr.com/download/index.html"; /***打开app的协议,有安卓同事提供***/ },2000); };
2: iOS デバイス: 原則: このプロトコルを知っているかどうかを判断します。知らない場合は、appios(); をダウンロードします。
if(isiOS){ function ios(){ var ifr = document.createElement("iframe"); ifr.src = "openwjtr://com.tyrbl.wjtr"; /***打开app的协议,有ios同事提供***/ ifr.style.display = "none"; document.body.appendChild(ifr); window.setTimeout(function(){ document.body.removeChild(ifr); window.location.href = "http://www.wjtr.com/download/index.html"; /***下载app的地址***/ },2000) }; }
2 番目の方法:
JS でアプリを起動することはできますが、アプリがインストールされているかどうかを判断することはできません。
アプリの起動に時間がかかり、jsの中断時間が長くなります。インストールされていない場合、jsが瞬時に実行されてしまいます。コードに飛び込むだけです!
HTML コード:
<a href="javascript:testApp('tel:1868888888')">打电话</a>
function testApp(url) { var timeout, t = 1000, hasApp = true; setTimeout(function () { if (hasApp) { alert('安装了app'); } else { alert('未安装app'); } document.body.removeChild(ifr); }, 2000) var t1 = Date.now(); var ifr = document.createElement("iframe"); ifr.setAttribute('src', url); ifr.setAttribute('style', 'display:none'); document.body.appendChild(ifr); timeout = setTimeout(function () { var t2 = Date.now(); if (!t1 || t2 - t1 < t + 100) { hasApp = false; } }, t); }
3 番目の方法:
私は最近、プロジェクトの wap バージョンに取り組んでいます。要件の 1 つは、まず、APP アプリケーションが携帯電話で利用できるかどうかを確認することです。利用できる場合は、アプリケーションを開き、wap ページに移動します。
簡単に言うと、wap はモバイル ブラウザ上で動作する Web サイトです。アプリケーションがどこにあっても、それは単なるブラウザです。実際の実装では、http プロトコルをローカル ソフトウェア プロトコルに変換します。
コードを直接投稿するだけです。
以下のように:
<script language="javascript"> if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) { var loadDateTime = new Date(); window.setTimeout(function() { var timeOutDateTime = new Date(); if (timeOutDateTime - loadDateTime < 5000) { window.location = "要跳转的页面URL"; } else { window.close(); } }, 25); window.location = " apps custom url schemes "; } else if (navigator.userAgent.match(/android/i)) { var state = null; try { state = window.open("apps custom url schemes ", '_blank'); } catch(e) {} if (state) { window.close(); } else { window.location = "要跳转的页面URL"; } } </script>
アプリのカスタム URL スキームとは何ですか?
は、実際には、あなたと APP の間で合意されたプロトコル URL であり、プログラムを作成するときに、IOS または Android の同僚が URL スキームを設定します。
設定例:
URL スキーム: app
その後、他のプログラムは URLString = app:// を介してアプリケーションを呼び出すことができます。
次のようなパラメータを渡すこともできます:
app://reaction/?uid=1
原則: このマシン上にこのプロトコルを解析できるアプリケーションが存在し、このプロトコルを解析できるアプリケーションがない場合はプログラムを開いてアプリケーションを呼び出します。プロトコルが終了するか、このマシンが 500ms 以内にプログラムを開かない場合は、setTimeout でジャンプしたいページにジャンプする関数を実行します。
上記は、モバイル端末に特定のアプリがインストールされているかどうかを判断するための JS のさまざまな方法です。皆さんの学習に役立つことを願っています。