如何用js判断iPhone5 iPhone 5S iPhone6 iPhone6 plus?

用user-agent来判断感觉不是很准确,有没有其他的方法?

阅读 20k
5 个回答

var events = navigator.userAgent;

    console.log(navigator.userAgent);
    console.log(navigator.appVersion);
    console.log(navigator)
    if(events.indexOf('Android')>-1 || events.indexOf('Linux')>-1 || events.indexOf('Adr')>-1){
        console.log("安卓手机");
    }else if(events.indexOf('iPhone')>-1){
        //根据尺寸进行判断 苹果的型号
        if(screen.height == 812 && screen.width == 375){
            console.log("苹果X");
        }else if(screen.height == 736 && screen.width == 414){
            console.log("iPhone7P - iPhone8P - iPhone6");
        }else if(screen.height == 667 && screen.width == 375){
            console.log("iPhone7 - iPhone8 - iPhone6");
        }else if(screen.height == 568 && screen.width == 320){
            console.log("iPhone5");
        }else{
            console.log("iPhone4");
        }
    }else if(events.indexOf('Windows Phone')>-1){
        console.log("诺基亚手机");
        
    }else if(events.indexOf("iPad")>-1){
        console.log("平板");
    }

user-agent估计就能判断出是apple,用浏览器宽高应该能判断出来

使用navigator.userAgent,一般是判断ios的版本,第几代iphone应该没办法,要的话只能自己写native方法

你是要做什么兼容吗?如果是适配大小的话可以通过获取window.screen.width == 414.其他的属性是无法获取的,JS没法判断是iphone6 plus.
或者你可以打印出每一个苹果用户代理的信息,自己正则去匹配,但是存在准确性的问题。
最好通过native去判断~

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