Что именно клиент подразумевает под «поддерживаемым». Конечно, это означает, что данный телефон поддерживает веб-приложение и его внутреннюю функциональность - не лучше ли забыть об обнаружении устройства и просто сосредоточиться на обнаружении тех возможностей, которые необходимы для правильной работы приложения? Например, если моему мобильному веб-сайту требуется Ajax для работы, вместо того чтобы перечислять все устройства, которые, как говорят, «поддерживают Ajax», я мог бы сделать несколько простых обнаружений объектов, чтобы выяснить это для себя.
Обнаружение устройства, как и обнаружение браузера, ненадежно. Да, это возможно, но я бы не советовал ... в проекте, который я сделал, мы использовали строку User Agent для обнаружения различных устройств. Метод indexOf javaScript пригодился! :)