From 4d9f1d81ff25f36550fe37758209240d6c34ef32 Mon Sep 17 00:00:00 2001 From: dmkt9 Date: Tue, 28 Oct 2025 22:09:06 +0700 Subject: [PATCH 1/2] Add support for detecting iOS 26 --- lib/Device.ts | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/Device.ts b/lib/Device.ts index 1100cb45..8e84a50a 100644 --- a/lib/Device.ts +++ b/lib/Device.ts @@ -9,12 +9,18 @@ type DeviceInfo = { function getOSAndName(): DeviceInfo { const parser = new UAParser(); - const result = parser.getResult(); + const {browser, os} = parser.getResult(); + + let osVersion = os.version; + if (browser.name === 'Mobile Safari' && browser.major === '26' && os.name === 'iOS' && os.version === '18.6') { + osVersion = '26'; + } + return { - os: result.os.name, - osVersion: result.os.version, - deviceName: result.browser.name, - deviceVersion: result.browser.version, + os: os.name, + osVersion, + deviceName: browser.name, + deviceVersion: browser.version, }; } From f221595ef66affed46e48bac7dc9255edd7aa227 Mon Sep 17 00:00:00 2001 From: dmkt9 Date: Wed, 29 Oct 2025 09:20:18 +0700 Subject: [PATCH 2/2] Add support for detecting iOS 26 --- lib/Device.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/Device.ts b/lib/Device.ts index 8e84a50a..580965d1 100644 --- a/lib/Device.ts +++ b/lib/Device.ts @@ -12,6 +12,8 @@ function getOSAndName(): DeviceInfo { const {browser, os} = parser.getResult(); let osVersion = os.version; + // Detection logic inspired by UAParser guide on iOS 26: + // https://docs.uaparser.dev/guides/how-to-detect-ios-26-using-javascript.html if (browser.name === 'Mobile Safari' && browser.major === '26' && os.name === 'iOS' && os.version === '18.6') { osVersion = '26'; }