HTML中判斷手機是否安裝某APP,跳轉或下載該應用


有些時候在做前端輸出的時候,需要和app的做些對接工作。就是在手機瀏覽器中下載某app時,能判斷該用戶是否安裝了該應用。如果安裝了該應用,就直接打開該應用;如果沒有安裝該應用,就下載該應用。那么下面就對在瀏覽器中,用js判斷某用戶是否安裝了該應用,並判斷是否打開該應用做個簡單的介紹。

那么,怎么判斷某用戶是否安裝了某應用呢?

在這里,先寫段html代碼,如下:

<!doctype html>
<html>
<head>
	<meta charset="utf-8">
</head>
<body>
	<a href="某app下載鏈接"></a>
</body>
</html>

判斷手機端是否安裝某應用,並打開該應用的js代碼如下:

	function isInstalled(){
		var the_href=$(".down_app").attr("href");//獲得下載鏈接
		window.location="apps custom url schemes";//打開某手機上的某個app應用
		setTimeout(function(){
			window.location=the_href;//如果超時就跳轉到app下載頁
		},500);
	}

下面對這段js代碼做一個簡單的解析:首先試着打開手機端某個app的本地協議;如果超時就轉到app下載頁,下載該app。

說到這里,有人就要問了,這個本地協議又是怎么建立的呢?好了,下面也就這個做個簡單的介紹:

其實就是在app中將http協議轉換為本地協議,具體怎么轉換,不在本討論范圍。但需要在app里面對配置文件做一下設置(一般是在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是什么呢?

其實就是你與app約定的一個協議URL,在iOS客戶端或者Android客戶端中可以設置一個URL Scheme。例如,設置URL Scheme:app,然后其他的程序就可以通過“ URLString=app://”調用該應用。還可以傳參數,如:app://reaction/?uid=1

以上介紹了怎么創建該本地協議及調用該本地協議的方法。但這里還有個關鍵就是怎么判斷用戶是否安裝了該app呢?原理如下:

在手機瀏覽器中用js代碼請求該協議,如果在500ms內,如果有應用程序能解析這個協議,那么就能打開該應用;如果超過500ms就跳轉到app下載頁。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM