UAParserSwift 1.2.1

UAParserSwift 1.2.1

Daniele Margutti 维护。



UAParserSwift

基于 ua-parser.js 的 User-Agent 解析器

UAParserSwift 是一个基于 Swift 的解析 User-Agent 字符串的库;它是由 Faisal Salman 开发的 ua-parser-js 的一个端口,主要用于 Swift Server Side 应用程序(KituraVapor 等)。然而,您也可以在客户端上使用它,所有 Apple 的平台都受支持(iOS、macOS、tvOS 和 watchOS)。

这个库的目的是从用户代理字符串中识别详细的网络浏览器类型、布局引擎、操作系统、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编写的。

Swift Package Manager (Vapor或其他服务器端框架)

Meow需要Swift 4.0或更高版本才能工作。这是Swift服务器端包的官方安装方式。在你的Package.swift中,在你的依赖数组中添加以下内容

.package(url: "https://github.com/malcommac/UAParserSwift.git", from: "1.0.1")

在你的目标中添加"UAParserSwift"依赖。

.target(name: "Application", dependencies: ["UAParserSwift", ...])

CocoaPods

  1. 将pod UAParserSwift 添加到你的 Podfile
pod 'UAParserSwift'

从终端运行pod install,然后打开你的应用程序的.xcworkspace文件以启动Xcode。

贡献

  • 如果您需要帮助或想要提出一个一般性问题的,请创建一个issue。
  • 如果您发现了bug,请创建一个issue。
  • 如果您有功能请求,请创建一个issue。
  • 如果您想做出贡献,提出一个pull request。

许可证

双重授权受GPLv2 & MIT

版权所有 © 2017 Daniele Margutti [email protected] 原创版本 ua-parser-js 版权: 版权所有 © 2012-2016 Faisal Salman [email protected]

兹此同意,免费许可任何获取本软件及其相关文档文件(以下简称“软件”)的人士在不加限制的情况下处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件复制品,并允许软件提供者进行上述行为,但前提是须遵守以下条件

上述版权声明和本许可声明应包含在软件的副本或实质部分的任何副本中。

本软件遵循 MIT 许可证

请考虑❤️ 支持此库的发展

关注我的