1

Its easy to detect Chrome browser and android device, but cannot able to detect Dolphin browser. I have tried the below code:

var isMobile = {
    Android: function() {
        return navigator.userAgent.match(/Android/i);
    },            
    iOS: function() {
        return navigator.userAgent.match(/iPhone|iPad|iPod/i);
    },            
    Windows: function() {
        return navigator.userAgent.match(/IEMobile/i);
    },
    any: function() {
        return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
    },
    Dolphin: function() {
        return navigator.userAgent.match(/Dolphin Browser/i);
    },
    Chrome: function() {
        return navigator.userAgent.match(/Chrome/i);
    }
};

if (isMobile.Dolphin()) alert('Dolphin');
if (isMobile.Android()) alert('android');
if (isMobile.Chrome()) alert('Chrome');
Drakes
  • 23,254
  • 3
  • 51
  • 94
RENJITH VS
  • 99
  • 13

3 Answers3

0

Since one of the most important features of Dolphin browser is to force Desktop rendering on mobile devices, The Dolphin browser fakes its useragent string, so it is not possible to detect it by JavaScript in reliable way.

ʞᴉɯ
  • 5,376
  • 7
  • 52
  • 89
0

Dolphin browser use the string Dolfin as their user agent. But its not safe as User Agent get modified by devices.

You can first check for Dolfin, otherwise you can check if android and mobile are include in the UserAgent string.

Sushant
  • 1,354
  • 1
  • 14
  • 31
0

Detecting a Dolphin browser is a tough one. Beside the point that users are able to change their user agent, I've found that not all Dolphin browsers have a Dolphin-related string within the user-agent.

I did this by alerting the user agent on my own beta website (so customers did not have any issues or pop-ups) and then trying it out with various devices and their Dolphin browsers. Done on a tablet, so that might be it

Looking for a Dolphin string is unreliable.

BUT, since Dolphin is based on a low-level version of Chrome, all you could do is check which version of Chrome is present within the browser. It is a sloppy assumption, but it works: Chrome users have the newer version (most of the time, and if not, their browser has about the same compability as a Dolphin browser), and Dolphin users have a older version of Chrome.

You can get the version by using this Regex

var chromeVersion = /Chrome\/([0-9.]+)/.exec(navigator.userAgent)[1];

In combination with the android and iOS presence in the useragent, you can be more sure it is likely to be a Dolphin browser. Your best bet is to check if the user is

  • On a mobile device (from: Detecting a mobile browser)

    window.mobilecheck = function() {
      var check = false;
      (function(a)        {if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))) check = true;})(navigator.userAgent||navigator.vendor||window.opera);
      return check;
    };
    // Alternative, but might be supported by desktops in the future
    if (typeof window.orientation !== 'undefined') { // Your code here }
    
  • Using Chrome Version 33 or less (source: https://en.wikipedia.org/wiki/Dolphin_Browser )

    if (chromeversion.split(".")[0] < 34)
    {
        //... Do what you need to do here
        // Eg isDolphin = true;
    }
    

Note that Dolphin users are still able to change their user agent so there is never a 100% gaurantee, even if this matches all the Dolphin users

Community
  • 1
  • 1