一、
html5頁面js判斷是否安裝app
目前還不能通過瀏覽器直接判斷是否安裝app
通過谷歌參考別人的方式和測試
我們知道安裝了某個app后通過scheme跳轉協議(引薦:
http://www.jianshu.com/p/eed01a661186)進入到app
沒有安裝時點擊鏈接是無效的
所以通過點擊鏈接后到執行進入app之間的時間差來判斷是否安裝app
1、下面只是處理了
安卓系統時
if (navigator.userAgent.match(/android/i) ){ var nowTime = new Date().valueOf(); setTimeout(function(){ var launchTime = new Date().valueOf() - nowTime; if(launchTime < 28){ //28是調試估算出來的打開本地app基本需要的時間 window.location = "/phone/forward/app_download_redirect"; //下載app頁面 } },25); window.location="mysppscheme://";//自己定義的scheme協議 }
2、
iphone用一樣的原理實現測試有效
3、
weixin分享里面的頁面會在url添加變量isappinstalled
isappinstalled=1的時候代表安裝了app,值為0的時候代表沒有安裝
微信屏蔽了url scheme直接跳轉,所以weixin分享頁通過提示瀏覽器打開
再根據之前的isappubstalled值來判斷是否安裝app
var isWeixin = navigator.userAgent.match(/MicroMessenger/ig); //是否在微信 var appInstalled = document.location.href.indexOf("isappinstalled=1")>=0; //是否安裝app
上面方式是我通過谷歌看大家提出的方式和自己的測試唯一還沒出現問題的方式
當然后續有問題會繼續更新
二、判斷是否在app內部打開html5頁面
判斷當前頁面是否在app內部打開,單純的web前端還不能解決
需要客戶端對userAgent添加自己app相關的字段
(useragent設置Android:
http://www.jincon.com/archives/354/)
(useragent設置IOS:
http://www.jianshu.com/p/5f02451b8e87)
var userAgent = navigator.userAgent.toLowerCase(), //獲取userAgent isInapp = userAgent.indexOf("sunyuki")>=0;//查詢是否有相關app的相關字段