Wykryj telefon / tablet / klienta WWW za pomocą javascript

Próbuję wykryć, czy użytkownik końcowy jest na telefonie, tablecie lub komputerze

Od jakiegoś czasu jestem Google, najwyraźniej nie ma łatwego rozwiązania.

Chyba nie powinienem używać rozdzielczości, ponieważ obecnie niektóre tablety mają niesamowite rozdzielczości.

Nie powinienem polegać na orientacji, ponieważ laptopy z Windows 8 mogą po prostu obracać się jak tablety. (a responsywny projekt jest po prostu zbyt trudny dla mojego obecnego projektu)

Próbowałem użyć UserAgent (myślę, że ma też swoje wady), ale nie mogę go uruchomić, poniżej przedstawiono połączenie różnych wersji online, których używam do odróżnienia telefonu / tabletu od komputerów, po prostu nie działają i Nie mam pojęcia dlaczego

var agents = ['android', 'webos', 'iphone', 'ipad', 'blackberry','iemobile','phone','mobile'];
                for(i in agents) {
                    if(navigator.userAgent.toLowerCase().match('/'+agents[i]+'/i')) {
                        return true;
                    }
                }


if( /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ) {
                return true;
            }

 if( navigator.userAgent.match(/Android/i)
                 || navigator.userAgent.match(/webOS/i)
                 || navigator.userAgent.match(/iPhone/i)
                 || navigator.userAgent.match(/iPad/i)
                 || navigator.userAgent.match(/iPod/i)
                 || navigator.userAgent.match(/BlackBerry/i)
                 || navigator.userAgent.match(/Windows Phone/i)
                 || navigator.userAgent.match(/bada/i)
                 || navigator.userAgent.match(/Bada/i)
                 ){
                return true;
            }

questionAnswers(4)

yourAnswerToTheQuestion