Code Monkey home page Code Monkey logo

Comments (11)

ciarans avatar ciarans commented on May 27, 2024 6

Not sure if this help's but this how I have adapted the functionality to detect Desktop, Phone, Tablet and Mobile (Phone and Tablet)

    isMatchingDeviceType(device) {

        if (typeof device === 'undefined') {
            return true;
        }
        if (['ALL', 'MOBILE', 'PHONE', 'DESKTOP', 'TABLET'].indexOf(device) == -1 || device === "ALL") {
            return true;
        }

        var md = new MobileDetect(this.userAgent);
        var isMobile = md.mobile() !== null, isPhone = md.phone() !== null, isTablet = md.tablet() !== null;


        if (device === "DESKTOP" && !isMobile) {
            return true;
        }

        if (device === "MOBILE" && isMobile) {
            return true;
        }

        if (device === "TABLET" && isTablet) {
            return true;
        }

        if (device === "PHONE" && isPhone) {
            return true;
        }

        return false;
    }

from mobile-detect.js.

morenoh149 avatar morenoh149 commented on May 27, 2024 2

bumping this. I started off using mobile detect for a responsive web app but now I need to have custom functionality on desktop

from mobile-detect.js.

hgoebl avatar hgoebl commented on May 27, 2024

Can you tell me the value for window.navigator.userAgent please? (You can use the JavaScript console to get the value.) On which browser and operating system have you encountered the problem?

from mobile-detect.js.

AlexanderMatveev avatar AlexanderMatveev commented on May 27, 2024

With Node.js, here are the tests:

Windows 7
a) Chrome: "Chrome: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36"
b) Firefox "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0"
c) Yandex Browser: "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.13014 YaBrowser/13.12.1599.13014 Safari/537.36"
d) IE: "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)"

Mac
a) Chrome: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.102 Safari/537.36"
b) Safari: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9) AppleWebKit/537.71 (KHTML, like Gecko) Version/7.0 Safari/537.71"

from mobile-detect.js.

AlexanderMatveev avatar AlexanderMatveev commented on May 27, 2024

Maybe, I'm doing something wrong

from mobile-detect.js.

hgoebl avatar hgoebl commented on May 27, 2024

Can you double-check whether you call the constructor of MobileDetect "class" with the userAgent as argument?

var md = new MobileDetect(window.navigator.userAgent);

from mobile-detect.js.

serbanghita avatar serbanghita commented on May 27, 2024

@alexmatveev to check for a desktop device you have to first check if it's mobile, hence isDesktop is not available.

from mobile-detect.js.

AlexanderMatveev avatar AlexanderMatveev commented on May 27, 2024

@hgoebl

in route:

var MobileDetect = require('mobile-detect');
res.locals.md = new MobileDetect(req.headers['user-agent']);

in view (jade):

=md.userAgent()
=md.os()

from mobile-detect.js.

AlexanderMatveev avatar AlexanderMatveev commented on May 27, 2024

@serbanghita But there are more options: TV, DesktopMode, Watch, etc. So I must to check all of them and if they all are FALSE, mean that it's a desktop?

from mobile-detect.js.

hgoebl avatar hgoebl commented on May 27, 2024

@alexmatveev you haven't done anything wrong. The problem you're encountering is, that MobileDetect has a strong focus on mobile devices and leaves desktop a bit in the dark.

This means that md.userAgent() and md.os() only return detected mobile userAgents and OSs.

You can see some "extensions" if you have a look at mobile-usage.

Extending mobile-detect.js to classify desktop browsers and operating system would not be a bad idea. But at the moment I don't have a good idea how to keep backward compatibility.

Any suggestion?

from mobile-detect.js.

adzza24 avatar adzza24 commented on May 27, 2024

Extending mobile-detect.js to classify desktop browsers and operating system would not be a bad idea. But at the moment I don't have a good idea how to keep backward compatibility.

Any suggestion?

I would suggest a separate library (device-detect.js?) which incorporates these desktop enhancements :) Love this library and would very much love to see this enhancement come to fruition!

from mobile-detect.js.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.