如何判断当前环境是移动端还是PC端
Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 211
Author 回答者: shfshanyue
判断 navigator.userAgent,对于 Android/iPhone 可以匹配以下正则
const appleIphone = /iPhone/i;
const appleIpod = /iPod/i;
const appleTablet = /iPad/i;
const androidPhone = /\bAndroid(?:.+)Mobile\b/i; // Match 'Android' AND 'Mobile'
const androidTablet = /Android/i;当然,不要重复造轮子,推荐一个库: https://github.com/kaimallea/isMobile
import isMobile from "ismobilejs";
 
const mobile = isMobile();Author 回答者: SageSanyue
isPc() {
    var userAgentInfo = navigator.userAgent
    var Agents = new Array(
      'Android',
      'iPhone',
      'SymbianOS',
      'Windows Phone',
      'iPad',
      'iPod'
    )
    var flag = true
    for (var v = 0; v < Agents.length; v++) {
      if (userAgentInfo.indexOf(Agents[v]) > 0) {
        flag = false
        break
      }
    }
    return flag
  }嘿嘿照搬了一段商用的
Author 回答者: shfshanyue
@SageSanyue 直接用 Array.prototype.some 就简单多了
Author 回答者: SageSanyue
@SageSanyue 直接用
Array.prototype.some就简单多了
确实噢😯我完全没动我的zhu脑子:(
isPc() {
    var userAgentInfo = navigator.userAgent
    var Agents = new Array(
      'Android',
      'iPhone',
      'SymbianOS',
      'Windows Phone',
      'iPad',
      'iPod'
    )
    var flag = true
    flag = !Agents.some((ele) => {
        return userAgentInfo.indexOf(ele) > 0
    })
    return flag
  }Author 回答者: BonjourYY
@SageSanyue 直接用
Array.prototype.some就简单多了确实噢😯我完全没动我的zhu脑子:(
isPc() { var userAgentInfo = navigator.userAgent var Agents = new Array( 'Android', 'iPhone', 'SymbianOS', 'Windows Phone', 'iPad', 'iPod' ) var flag = true flag = !Agents.some((ele) => { return userAgentInfo.indexOf(ele) > 0 }) return flag }
是不是应该考虑 >= 0 或者 !==-1 会更好一点呢?