Maison > Article > interface Web > Détection de l'agent utilisateur et changement de licence ua-parser-js
Écrit par Ikeh Akinyemi✏️
La détection des agents utilisateurs joue un rôle important en aidant les développeurs à optimiser leurs sites Web et leurs applications pour divers appareils, navigateurs et systèmes d'exploitation. En identifiant avec précision les environnements de leurs utilisateurs, les développeurs peuvent adapter leurs solutions pour offrir la meilleure expérience utilisateur.
Dans cet article, nous découvrirons la détection des agents utilisateurs et explorerons la bibliothèque JavaScript qui a été largement adoptée par les développeurs : ua-parser-js. ua-parser-js a récemment fait la une des journaux en raison d'un changement dans son modèle de licence, et nous aborderons son passage d'une licence permissive MIT à un double modèle de licence AGPLv3 + commerciale, et comment cela affecte les projets individuels et SaaS.
La détection des agents utilisateurs est le processus d'identification des composants logiciels et matériels spécifiques que vos utilisateurs utilisent pour accéder à votre site Web ou à votre application. La détection implique des informations sur le nom et la version du navigateur de l’utilisateur, le système d’exploitation, le type d’appareil, etc.
En tirant parti de la détection de l'agent utilisateur, le développeur peut prendre des décisions éclairées sur la manière de présenter et d'optimiser le contenu de ses utilisateurs, garantissant ainsi l'accessibilité, des expériences personnalisées, une compatibilité entre navigateurs et matériels, et éventuellement des performances améliorées dans le large éventail de différents plateformes utilisées.
ua-parser-js est une bibliothèque JavaScript légère qui simplifie la détection des agents utilisateurs. Cette bibliothèque a été développée et maintenue par Faisal Salman, et elle a été fortement adoptée par la communauté des développeurs en raison de sa facilité d'utilisation, de sa prise en charge étendue du navigateur et de ses résultats fiables.
Avec ua-parser-js, vous pouvez facilement analyser les chaînes de l'agent utilisateur et obtenir des informations précises sur le navigateur, le système d'exploitation, l'appareil de l'utilisateur, etc. La bibliothèque fournit une API simple et intuitive qui peut être facilement intégrée à vos projets Web.
Dans les sections suivantes, nous découvrirons la bibliothèque ua-parser-js, y compris ses fonctionnalités importantes, ses méthodes d'installation et ses exemples d'utilisation. Nous discuterons également des récents changements de licence, qui ont suscité des débats au sein de la communauté des développeurs.
La bibliothèque ua-parser-js peut être installée de différentes manières, en fonction de votre environnement de développement et de vos préférences. Avec une empreinte légère d'environ 18 Ko minifiés et 7,9 Ko compressés, ua-parser-js peut être facilement intégré aux environnements côté client (navigateur) et côté serveur (Node.js).
Pour utiliser ua-parser-js dans un fichier HTML, vous pouvez simplement inclure le script de la bibliothèque dans votre fichier HTML :
<!DOCTYPE html> <html> <head> <script src="ua-parser.min.js"></script> </head> <body> var parser = new UAParser(); <!-- Your content goes here --> </body> </html>
Téléchargez le fichier JavaScript minifié et incluez-le dans le même niveau de répertoire que le fichier HTML. Si vous utilisez ua-parser-js dans un environnement Node.js, vous pouvez l'installer en utilisant npm :
npm install ua-parser-js
Ensuite, dans votre script Node.js, vous pouvez exiger la bibliothèque :
const UAParser = require('ua-parser-js');
Pour les projets TypeScript, vous pouvez installer la bibliothèque avec ses définitions de types à l'aide de npm :
npm install --save ua-parser-js @types/ua-parser-js
Ensuite, dans votre fichier .ts, vous pouvez importer la bibliothèque :
import { UAParser } from "ua-parser-js"; const parser = new UAParser()
La bibliothèque ua-parser-js fournit une API simple pour analyser les chaînes de l'agent utilisateur et accéder aux données analysées.
Pour analyser une chaîne d'agent utilisateur, vous pouvez créer une instance de l'objet UAParser et appeler la méthode setUA avec la chaîne d'agent utilisateur :
const parser = new UAParser(); parser.setUA('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36');
Une fois la chaîne de l'agent utilisateur analysée, vous pouvez accéder aux données analysées en utilisant les méthodes disponibles fournies par l'objet UAParser :
const result = parser.getResult(); console.log(result.browser); // {name: "Chrome", version: "93.0.4577.82", major: "93"} console.log(result.os); // {name: "Windows", version: "10"} console.log(result.device); // {vendor: undefined, model: undefined, type: undefined}
La méthode getResult renvoie un objet contenant les données analysées, y compris des informations sur le navigateur, le système d'exploitation, l'appareil, le processeur et le moteur.
ua-parser-js vous permet également d'étendre ses capacités d'analyse en fournissant des expressions régulières et des règles d'analyse personnalisées. Vous pouvez transmettre un tableau d'extensions lors de la création d'une nouvelle instance de l'objet UAParser :
const myExtensions = [ [/(myapp)\/([\w\.]+)/i, [UAParser.BROWSER.NAME, UAParser.BROWSER.VERSION]], ]; const parser = new UAParser(navigator.userAgent, myExtensions);
Avec ces fonctionnalités et exemples, vous devriez bien comprendre comment installer, configurer et utiliser ua-parser-js dans vos projets de développement Web. Dans la section suivante, nous explorerons les récents changements de licence entourant ua-parser-js et leurs implications pour les développeurs et la communauté open source.
Récemment, ua-parser-js a subi un changement de licence important qui a suscité des discussions au sein de la communauté des développeurs. Avant le changement, ua-parser-js était initialement distribué sous la licence MIT, connue pour sa nature permissive. Cette licence permettait aux développeurs d'utiliser, de modifier et de distribuer la bibliothèque avec des restrictions minimales, ce qui en faisait un choix populaire pour les projets open source et commerciaux.
ua-parser-js a gagné en popularité, avec plus de 2 240 projets dépendants et a été téléchargé plus de 12,3 millions de fois. Cette croissance a conduit à une augmentation des demandes de maintenance et à la nécessité d'un modèle de développement plus durable. Le nouveau modèle de licence vise à générer des revenus pour soutenir les efforts continus de maintenance et de développement.
Avec la récente sortie de la version 2.0, ua-parser-js a adopté un modèle de licence double : AGPLv3 (GNU Affero General Public License version 3) pour la version gratuite et open source et une licence propriétaire PRO pour un usage commercial. Ce changement a entraîné un changement significatif dans la façon dont les développeurs peuvent utiliser et distribuer ua-parser-js dans leurs projets.
Le modèle de double licence tente de trouver un juste milieu entre la maintenance d'une bibliothèque open source et le profit des utilisateurs commerciaux qui pourraient avoir besoin de fonctions ou d'assistance supplémentaires. Actuellement, les projets commerciaux sont confrontés à une décision : soit ils respectent les termes de la licence AGPLv3 (qui peuvent les obliger à publier leur propre code source), soit ils achètent une licence PRO. Le prix de la licence PRO commence à partir de 12 $ pour un usage personnel et va jusqu'à 500 $ pour un usage professionnel. Ce modèle, souvent appelé « open core », a été adopté par d'autres projets de l'écosystème open source, tels que Sidekiq, Mastodon, Nextcloud et d'autres.
On a parlé de potentiels forks de la version sous licence MIT ou du développement de bibliothèques alternatives. Par exemple, Matteo Collina, membre du TSC de Node.js, a déjà créé un fork appelé my-ua-parser pour maintenir une version sous licence MIT.
Alors que vous traversez cette transition, il est important que vous compreniez les changements et réfléchissiez à leur impact potentiel sur vos projets. Dans la section suivante, nous explorerons quelques stratégies pour gérer ce changement de licence dans votre propre travail.
Lorsque vous décidez quelle licence utiliser, vous devez tenir compte de la nature et des exigences de votre projet, réévaluer ses dépendances et prendre des décisions éclairées pour éviter les défis que présente le changement de licence.
Si votre projet utilise déjà une licence open source compatible, alors la version AGPLv3 pourrait convenir. Cela signifie que vous rendrez disponible l'intégralité du code source de votre application si vous le distribuez ou l'exécutez en tant que service réseau. Cependant, gardez à l'esprit que l'utilisation de la version AGPL peut limiter l'adoption de votre projet par d'autres personnes qui ne peuvent pas se conformer aux conditions AGPL.
Mais si vous développez un logiciel propriétaire ou si vous ne pouvez pas vous conformer aux conditions de l'AGPL, vous devriez envisager d'acheter la licence PRO ; évaluez si le coût de la licence PRO est justifié par les avantages et les fonctionnalités dont vous avez besoin de ua-parser-js. Alternativement, vous pouvez continuer à utiliser la branche v1.x ou les forks de ua-parser-js, qui restent sous licence MIT. Mais vous devez noter que cette version peut recevoir des mises à jour limitées à l'avenir.
Depuis des années, ua-parser-js est apprécié comme un outil précieux pour les développeurs Web. Sa capacité à analyser avec précision les chaînes de l'agent utilisateur et à fournir des informations détaillées sur les navigateurs, les systèmes d'exploitation et les appareils en a fait une bibliothèque essentielle pour beaucoup d'entre nous.
Le passage de la licence MIT à un double modèle AGPLv3 + PRO a sans aucun doute fait sensation dans la communauté des développeurs. Nous avons été témoins de diverses réactions; certains membres de la communauté se sont montrés compréhensifs tandis que d’autres ont fait preuve d’inquiétude et d’opposition. Pour certains, cela signifierait ajuster leurs projets pour se conformer à la licence AGPLv3, tandis que pour d'autres, cela pourrait impliquer l'achat d'une licence PRO ou la recherche de solutions alternatives.
En tant qu'utilisateurs de logiciels open source, nous devons nous préparer à de tels changements et mettre en place des stratégies pour nous adapter si nécessaire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!