1.在前端开发过程中,遇见过一个需求,需要 H5页面 判断是在手机APP内打开,还是在手机浏览器里面打开的。
2.js 获取 window.navigator.userAgent 浏览器信息,唯一的区别是在最后面会有一个当前APP里面的协议头。使用APP的协议头来加以判断。例如下面获取的信息后面会有一个 xxxpay的标识
3.然后我们可以使用JS方法来判断,建议使用三种方式以或者的条件进行判断,预防众多安卓的兼容性问题。
**var userAgent = window.navigator.userAgent;
if(userAgent.indexOf(‘你的app协议头’) > -1|| userAgent.search(‘你的app协议头’) -1){
// 是当前APP打开的页面
}else{
// 不是当前APP打开的页面
}
方式一:
userAgent.indexOf(‘你的app协议头’);
方式二:
userAgent.search(‘你的app协议头’);
以下代码可以查看当前app的协议头
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
body{
color: red;
font-size: 30px;
}
</style>
</head>
<body>
<script>
document.body.innerText = navigator.userAgent;
if(userAgent.indexOf('你的app协议头') > -1|| userAgent.search('你的app协议头') > -1){
// 是当前APP打开的页面
}else{
// 不是当前APP打开的页面
}
</script>
</body>
</html>