网页打包的app,需要加一个下载按钮,在浏览器打开就显示这个按钮,在app打开就把这个按钮隐藏。
如何判断网页是在浏览器打开还是app打开呢?
在网上找了一些方法,发现都不能用。
后来经过自己的测试,终于找到方法了。
在网页中打印window.navigator.userAgent,看看浏览器和app打开有什么区别
安卓app:
Mozilla/5.0 (Linux; Android 9; HRY-AL00a Build/HONORHRY-AL00a; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/72.0.3626.121 Mobile Safari/537.36 agentweb/4.0.2 UCBrowser/11.6.4.950 agentweb/3.1.0
安卓浏览器:
Mozilla/5.0 (Linux; Android 9; HRY-AL00a Build/HONORHRY-AL00a) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.36
我发现安卓app打开的时候,有agentweb,浏览器打开没有
苹果app:
Mozilla/5.0 (iPhone; CPU iPhone OS 12_4_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
苹果浏览器:
Mozilla/5.0 (iPhone; CPU iPhone OS 12_4_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.2 Mobile/15E148 Safari/604.1
我发现苹果浏览器打开有Version,苹果app打开没有Version
于是,我就通过下面这段代码来判断网页是浏览器还是app打开,如果是app打开就隐藏下载按钮
if (window.navigator.userAgent.indexOf('iPhone') > -1) {
//苹果
if(window.navigator.userAgent.indexOf('Version') == -1){
$(".btn").hide();//隐藏下载按钮
}
}
if (window.navigator.userAgent.indexOf('Android') > -1) {
//安卓
if(window.navigator.userAgent.indexOf('agentweb') > -1){
$(".btn").hide();//隐藏下载按钮
}
}
//苹果
if(window.navigator.userAgent.indexOf('Version') == -1){
$(".btn").hide();//隐藏下载按钮
}
}
if (window.navigator.userAgent.indexOf('Android') > -1) {
//安卓
if(window.navigator.userAgent.indexOf('agentweb') > -1){
$(".btn").hide();//隐藏下载按钮
}
}