今天在做前端輸出的時(shí)候,,需要和app的做些對(duì)接工作,。就是在手機(jī)瀏覽器中下載某app時(shí),能判斷該用戶是否安裝了該應(yīng)用,。如果安裝了該應(yīng)用,,就直接打開(kāi)該應(yīng)用;如果沒(méi)有安裝該應(yīng)用,,就下載該應(yīng)用。那么下面就對(duì)在瀏覽器中,,用js判斷某用戶是否安裝了該應(yīng)用,,并判斷是否打開(kāi)該應(yīng)用做個(gè)簡(jiǎn)單的介紹。 那么,,怎么判斷某用戶是否安裝了某應(yīng)用呢,? 在這里,先寫(xiě)段html代碼,,如下: <!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<a href="某app下載鏈接"></a>
</body>
</html>
判斷手機(jī)端是否安裝某應(yīng)用,,并打開(kāi)該應(yīng)用的js代碼如下: function isInstalled(){ var the_href=$(".down_app").attr("href");//獲得下載鏈接 window.location="apps custom url schemes";//打開(kāi)某手機(jī)上的某個(gè)app應(yīng)用 setTimeout(function(){ window.location=the_href;//如果超時(shí)就跳轉(zhuǎn)到app下載頁(yè) },500); } 下面對(duì)這段js代碼做一個(gè)簡(jiǎn)單的解析:首先試著打開(kāi)手機(jī)端某個(gè)app的本地協(xié)議;如果超時(shí)就轉(zhuǎn)到app下載頁(yè),,下載該app,。 說(shuō)到這里,有人就要問(wèn)了,,這個(gè)本地協(xié)議又是怎么建立的呢,?好了,,下面也就這個(gè)做個(gè)簡(jiǎn)單的介紹: 其實(shí)就是在app中將http協(xié)議轉(zhuǎn)換為本地協(xié)議,具體怎么轉(zhuǎn)換,,不在本討論范圍,。但需要在app里面對(duì)配置文件做一下設(shè)置(一般是在manifest.xml文件的activity的intent filter里面): <span> <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="**" android:host="**.**" android:pathPrefix="/**"> </data> </intent-filter> </span> apps custom url schemes是什么呢? 其實(shí)就是你與app約定的一個(gè)協(xié)議URL,,在iOS客戶端或者Android客戶端中可以設(shè)置一個(gè)URL Scheme,。例如,設(shè)置URL Scheme:app,,然后其他的程序就可以通過(guò)“ URLString=app://”調(diào)用該應(yīng)用,。還可以傳參數(shù),如:app://reaction/?uid=1 以上介紹了怎么創(chuàng)建該本地協(xié)議及調(diào)用該本地協(xié)議的方法,。但這里還有個(gè)關(guān)鍵就是怎么判斷用戶是否安裝了該app呢,?原理如下: 在手機(jī)瀏覽器中用js代碼請(qǐng)求該協(xié)議,如果在500ms內(nèi),,如果有應(yīng)用程序能解析這個(gè)協(xié)議,,那么就能打開(kāi)該應(yīng)用;如果超過(guò)500ms就跳轉(zhuǎn)到app下載頁(yè),。 原貼地址:http://laojiaoblog./archives/7563 |
|