Pick up the Android version in the browser by Javascript

后端 未结 9 1234
小蘑菇
小蘑菇 2020-12-02 05:09

I\'m building a web app and wanting to disable transitions effects on Android devices under version 3.0.

Is there anyway to pick up the Android version number by Ja

相关标签:
9条回答
  • 2020-12-02 05:52

    I can't comment because I don't have enough rep... Just wanted to add that I had to change neiker's code to

    var match = ua.match(/Android\s([0-9\.]*)/i);
    

    to make it case insensitive because the Galaxy S3 was returning "android" instead of Android in its user agent

    0 讨论(0)
  • 2020-12-02 05:53
    function getAndroidVersion(ua) {
        ua = (ua || navigator.userAgent).toLowerCase(); 
        var match = ua.match(/android\s([0-9\.]*)/i);
        return match ? match[1] : undefined;
    };
    
    getAndroidVersion(); //"4.2.1"
    parseInt(getAndroidVersion(), 10); //4
    parseFloat(getAndroidVersion()); //4.2
    
    0 讨论(0)
  • 2020-12-02 05:53

    Motorola's player user agents can have the following:

    Linux;Android ; Release/4.1.2
    

    So, I've had to start using the the following regex:

    [a|A]ndroid[^\d]*([\d[_|.]]+\d)
    
    0 讨论(0)
  • 2020-12-02 05:56

    1- Windows phone introduced a fake "android" user agent, so this deal with it
    2- As @andy pointed out, there are some models with this format: Android/#.##
    3- You can use the flag /i for case-insensitive
    4- This code gives you back NaN when its not android and the version as a float when it is.
    5- If you find more fake android phones you only need to add the string like this: (?:windows phone|fake phone|android...........

    alert( parseFloat(navigator.userAgent.match(/.*?(?:windows phone|android\D+([0-9\.]*))|()/i)[1]) );

    0 讨论(0)
  • 2020-12-02 05:59

    I made this function and worked very well in Android 2.6.3, 4.2.2., 6.0.1 in different browsers and devices. I think that can be an alternative.

    function check_android_version()
    {
        var ua = navigator.userAgent; 
        ua = ua.toLowerCase();
    
        var and_pos = ua.search("android");
        if(and_pos == -1)
            return 0; //not android
    
        var pv_pos = ua.indexOf(";", and_pos);
        var versao = ua.slice(and_pos+8, pv_pos);
    
        return versao;
    }
    

    This is quite simple, first, search for the word "android". If not found, returns 0 (is not an Android user agent). Then search for the first ';' after the "android" position that marks the end of the version. Once these positions are gotten, the 'slice' insulates the version numbers (that '+8' removes the word "android" of the final result) an then returns.

    If someone find any flaw, would be nice to share.

    0 讨论(0)
  • 2020-12-02 06:01

    Use below code to get 2 digit version of Android

    var ua = navigator.userAgent;
    if( ua.indexOf("Android") >= 0 )
    {
      var androidversion = parseFloat(ua.slice(ua.indexOf("Android")+8)); 
      if (androidversion < 2.3)
      {
          // do whatever
      }
    }
    

    For example

    Mozilla/5.0 (Linux; U; Android 2.2.1; fr-ch; A43 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

    will return Android Version = 2.2

    0 讨论(0)
提交回复
热议问题