Обнаружение телефона / планшета / веб-клиента с помощью JavaScript

Я пытаюсь определить, находится ли конечный пользователь на телефоне, планшете или компьютере.

Я уже некоторое время гуглю, видимо нет простого решения.

Ну, я думаю, я не должен использовать разрешение, так как в настоящее время некоторые планшеты имеют потрясающие разрешения.

Я не должен полагаться на ориентацию, потому что ноутбуки Windows8 могут просто вращаться, как планшеты. (а адаптивный дизайн слишком сложен для моего текущего проекта)

Я пытался использовать UserAgent (хотя у него тоже есть свои недостатки), но он не может заставить его работать, ниже приведено соединение разных версий в Интернете, которые я использую, чтобы отличить телефон / планшет от ПК, они просто не работают, и у меня есть понятия не имею почему

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;
            }

Ответы на вопрос(4)

Ваш ответ на вопрос