js如何准备的判断useragent信息?

比如我的网站分
pc版 www.mysite.com
移动版 m.mysite.com

我想实现当用户通过移动设备浏览我的pc版 www.mysite.com时,能通过js判断出用户是否用的是移动设备浏览,并调转到相应的移动版m.mysite.com

这个js怎么写,有没有成熟的插件之类的,请指教,感谢!!!

阅读 3.6k
4 个回答
/**
 * 判断当前设备是否是移动端
 * @returns {boolean}
 */
const isMobile = () => {
  const u = navigator.userAgent,
    mobile = !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
    ios = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
    android = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器
    iPhone = u.indexOf('iPhone') > -1, //是否为iPhone或者QQHD浏览器
    iPad = u.indexOf('iPad') > -1; //是否iPad

  return mobile || ios || android || iPhone || iPad;
};

/**
 * 判断是否是微信浏览器
 * @returns {boolean}
 */
const isWechat = () => {
  const ua = navigator.userAgent.toLowerCase();
  return ua.match(/MicroMessenger/i) == 'micromessenger';
};

我目前在用的移动端判断函数



var u = navigator.userAgent, app = navigator.appVersion;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1;//是否是安卓
var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);//是否是ios
// 是微信浏览器
    function is_weixn() {
        var ua = navigator.userAgent.toLowerCase();
        if (ua.match(/MicroMessenger/i) == "micromessenger") {
            return true;
        } else {
            return false;
        }
    }
    //是否是PC
    function IsPC() {
        var userAgentInfo = navigator.userAgent;
        var Agents = ["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;
    }

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题