基于 ua-parser.js 的 User-Agent 解析器
UAParserSwift 是一个基于 Swift 的库,用于解析 User Agent 字符串;它是 Faisal Salman 的 ua-parser-js 的 Swift 移植版本,主要用于 Swift 服务器端应用程序(Kitura, Vapor 等)。 当然,您也可以在客户端使用它,支持所有 Apple 平台(iOS、macOS、tvOS 和 watchOS)。
该库旨在完全从 user-agent 字符串中识别 Web 浏览器的详细类型、布局引擎、操作系统、CPU 架构以及设备类型/型号,并且占用空间相对较小。
亲爱的开发者!
您知道,维护和开发工具需要资源和时间。虽然我喜欢制作它们,但您的支持对于让我继续开发至关重要。
如果您正在使用 SwiftLocation 或我的任何其他作品,请考虑以下选项
UAParserSwift 的使用非常简单;只需分配一个 UAParser
对象以及您要解析的 User-Agent
字符串即可。
let parser = UAParser(agent: "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7")
// Then call properties you want to read.
// Parsed data are cached and evaluated lazily in order to
// get the best performances.
let identified_os = parser.os
let identified_device = parser.device
let identified_engine = parser.engine
let identified_os = parser.os
let identified_cpu = parser.cpu
现在您可以调用这些属性之一来获取解析的数据(所有属性都是延迟创建的,以保持解析器轻量级)
.browser
:返回一个包含浏览器属性的 Browser
对象:name
、version
.device
:返回一个包含设备信息的 Device
对象:vendor
、type
、model
.engine
:返回一个包含浏览器引擎信息的 Engine
对象:name
、version
.os
:返回一个包含主机操作系统信息的 OS
对象:name
、version
.cpu
:返回一个包含主机设备架构信息的 CPU
对象:identifier
名称:
Amaya, Android Browser, Arora, Avant, Baidu, Blazer, Bolt, Bowser, Camino, Chimera,
Chrome [WebView], Chromium, Comodo Dragon, Conkeror, Dillo, Dolphin, Doris, Edge,
Epiphany, Fennec, Firebird, Firefox, Flock, GoBrowser, iCab, ICE Browser, IceApe,
IceCat, IceDragon, Iceweasel, IE[Mobile], Iron, Jasmine, K-Meleon, Konqueror, Kindle,
Links, Lunascape, Lynx, Maemo, Maxthon, Midori, Minimo, MIUI Browser, [Mobile] Safari,
Mosaic, Mozilla, Netfront, Netscape, NetSurf, Nokia, OmniWeb, Opera [Mini/Mobi/Tablet],
PhantomJS, Phoenix, Polaris, QQBrowser, RockMelt, Silk, Skyfire, SeaMonkey, Sleipnir,
SlimBrowser, Swiftfox, Tizen, UCBrowser, Vivaldi, w3m, WeChat, Yandex
版本:动态确定
类型:
console, mobile, tablet, smarttv, wearable, embedded
供应商:
Acer, Alcatel, Amazon, Apple, Archos, Asus, BenQ, BlackBerry, Dell, GeeksPhone,
Google, HP, HTC, Huawei, Jolla, Lenovo, LG, Meizu, Microsoft, Motorola, Nexian,
Nintendo, Nokia, Nvidia, OnePlus, Ouya, Palm, Panasonic, Pebble, Polytron, RIM,
Samsung, Sharp, Siemens, Sony[Ericsson], Sprint, Xbox, Xiaomi, ZTE
型号:动态确定
引擎:
Amaya, EdgeHTML, Gecko, iCab, KHTML, Links, Lynx, NetFront, NetSurf, Presto,
Tasman, Trident, w3m, WebKit
引擎版本:动态确定
名称:
AIX, Amiga OS, Android, Arch, Bada, BeOS, BlackBerry, CentOS, Chromium OS, Contiki,
Fedora, Firefox OS, FreeBSD, Debian, DragonFly, Gentoo, GNU, Haiku, Hurd, iOS,
Joli, Linpus, Linux, Mac OS, Mageia, Mandriva, MeeGo, Minix, Mint, Morph OS, NetBSD,
Nintendo, OpenBSD, OpenVMS, OS/2, Palm, PC-BSD, PCLinuxOS, Plan9, Playstation, QNX, RedHat,
RIM Tablet OS, RISC OS, Sailfish, Series40, Slackware, Solaris, SUSE, Symbian, Tizen,
Ubuntu, UNIX, VectorLinux, WebOS, Windows [Phone/Mobile], Zenwalk
版本:动态确定
标识符:
68k, amd64, arm[64], avr, ia[32/64], irix[64], mips[64], pa-risc, ppc, sparc[64]
单元测试位于 Tests
目录下;实际上,它们与 ua-parser-js 的可用测试相同,并且都已成功通过。
这个库是用 Swift 4.x 编写的。
Meow 需要 Swift 4.0 或更高版本才能工作。 这是为 Swift Server Side 安装软件包的官方方式。 在您的 Package.swift 中,将以下内容添加到您的 dependencies 数组中
.package(url: "https://github.com/malcommac/UAParserSwift.git", from: "1.0.1")
对于您的 target,添加 "UAParserSwift" 依赖项。
.target(name: "Application", dependencies: ["UAParserSwift", ...])
UAParserSwift
添加到您的 Podfile。pod 'UAParserSwift'
从 Terminal 运行 pod install
,然后打开您的应用程序的 .xcworkspace
文件以启动 Xcode。
采用 GPLv2 和 MIT 双重许可
版权所有 © 2017 Daniele Margutti hello@danielemargutti.com 原始 ua-parser-js 版权:版权所有 © 2012-2016 Faisal Salman fyzlman@gmail.com
特此授予任何人免费获取本软件及相关文档文件(“软件”)的许可,以便不受限制地处理本软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售本软件副本的权利,并允许向获得本软件的人员提供本软件,但须符合以下条件:
上述版权声明和本许可声明应包含在本软件的所有副本或实质性部分中。
本软件采用 MIT 许可证 授权。
考虑 ❤️ 支持此库的开发!
在以下平台关注我