isIos
检查用户代理(User Agent)字符串是否表明客户端是 iOS 设备(iPhone、iPad 或 iPod)。
示例
基本用法
typescript
// iPhone User Agent
const iphoneUA = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Mobile/15E148 Safari/604.1'
isIos(iphoneUA)
// => true
// iPad User Agent
const ipadUA = 'Mozilla/5.0 (iPad; CPU OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/83.0.4103.88 Mobile/15E148 Safari/604.1'
isIos(ipadUA)
// => true
非 iOS 环境
typescript
// Android 设备的 User Agent
const androidUA = 'Mozilla/5.0 (Linux; Android 10; SM-G975F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Mobile Safari/537.36'
isIos(androidUA)
// => false
// 桌面 Mac 浏览器的 User Agent
const desktopUA = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36'
isIos(desktopUA)
// => false
签名与说明
typescript
/**
* 检查用户代理(User Agent)字符串是否表明客户端是 iOS 设备。
*
* 此函数通过测试给定的字符串中是否包含 "iPhone"、"iPad" 或 "iPod" 关键字来判断客户端环境是否为 iOS 系统,
* 从而覆盖苹果公司的主要移动设备。
*
* @param ua 要进行检查的用户代理(User Agent)字符串,通常来自 `navigator.userAgent`。
* @returns 如果用户代理字符串表明是 iOS 设备(iPhone, iPad, 或 iPod),则返回 `true`,否则返回 `false`。
*/
export function isIos(ua: string): boolean
注意事项与边界情况
- 关于判定逻辑: 函数通过检查输入字符串中是否包含
iPhone
、iPad
或iPod
之一来做出判断。只要满足其中一个条件即返回true
。 - 关于桌面 Mac: 此函数不会将桌面版 macOS 的 User Agent 误判为 iOS。如测试用例所示,包含
Macintosh; Intel Mac OS X
的字符串会返回false
。 - 关于空字符串: 当输入为空字符串
''
时,函数将返回false
。 - 关于 UA 伪造: 用户代理字符串可以被用户或浏览器插件轻易伪造,因此该函数不应作为安全验证的依据,仅适用于内容适配等场景。