From f0b67ac7966cec4703bfaa17537949e34fc32404 Mon Sep 17 00:00:00 2001 From: DCloud_LXH <283700113@qq.com> Date: Tue, 13 Apr 2021 16:00:19 +0800 Subject: [PATCH] =?UTF-8?q?fix(getSystemInfo):=20=E4=BF=AE=E5=A4=8D=20app?= =?UTF-8?q?=20=E4=B8=8A=E8=8E=B7=E5=8F=96=E7=89=88=E6=9C=AC=E7=BC=BA?= =?UTF-8?q?=E5=B0=91platform=E3=80=82=E6=96=B0=E5=A2=9E=20H5=20=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=E6=94=AF=E6=8C=81=E8=8E=B7=E5=8F=96windows=E3=80=81li?= =?UTF-8?q?nux=E3=80=81mac?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app-plus/service/api/device/system.js | 2 +- .../h5/service/api/device/get-system-info.js | 67 +++++++++++++++++++ 2 files changed, 68 insertions(+), 1 deletion(-) diff --git a/src/platforms/app-plus/service/api/device/system.js b/src/platforms/app-plus/service/api/device/system.js index 041cde937..b311c56b5 100644 --- a/src/platforms/app-plus/service/api/device/system.js +++ b/src/platforms/app-plus/service/api/device/system.js @@ -86,7 +86,7 @@ export function getSystemInfo () { windowHeight, statusBarHeight, language: plus.os.language, - system: plus.os.version, + system: `${platform} ${plus.os.version}`, version: plus.runtime.innerVersion, fontSizeSetting: '', platform, diff --git a/src/platforms/h5/service/api/device/get-system-info.js b/src/platforms/h5/service/api/device/get-system-info.js index e87912aba..40a79286c 100644 --- a/src/platforms/h5/service/api/device/get-system-info.js +++ b/src/platforms/h5/service/api/device/get-system-info.js @@ -11,6 +11,18 @@ const isAndroid = /android/i.test(ua) * 是否iOS设备 */ const isIOS = /iphone|ipad|ipod/i.test(ua) +/** + * 是否是Windows设备 + */ +const isWindows = ua.match(/Windows NT ([\d|\d.\d]*)/i) +/** + * 是否是Mac设备 + */ +const isMac = /Macintosh|Mac/i.test(ua) +/** + * 是否是Linux设备 + */ +const isLinux = /Linux|X11/i.test(ua) /** * 获取系统信息-同步 */ @@ -69,6 +81,61 @@ export function getSystemInfoSync () { break } } + } else if (isWindows || isMac || isLinux) { + model = 'PC' + const osversionFind = ua.match(/\((.+?)\)/)[1] + + if (isWindows) { + osname = 'Windows' + osversion = '' + switch (isWindows[1]) { + case '5.1': + osversion = 'XP' + break + case '6.0': + osversion = 'Vista' + break + case '6.1': + osversion = '7' + break + case '6.2': + osversion = '8' + break + case '6.3': + osversion = '8.1' + break + case '10.0': + osversion = '10' + break + } + + const framework = osversionFind.match(/[Win|WOW]([\d]+)/) + if (framework) { + osversion += ` x${framework[1]}` + } + } else if (isMac) { + osname = 'Mac' + osversion = osversionFind.match(/Mac OS X (.+)/) || '' + + if (osversion) { + osversion = osversion[1].replace(/_/g, '.') + // '10_15_7' or '10.16; rv:86.0' + if (osversion.indexOf(';') !== -1) { + osversion = osversion.split(';')[0] + } + } + } else if (isLinux) { + osname = 'Linux' + osversion = osversionFind.match(/Linux (.*)/) || '' + + if (osversion) { + osversion = osversion[1] + // 'x86_64' or 'x86_64; rv:79.0' + if (osversion.indexOf(';') !== -1) { + osversion = osversion.split(';')[0] + } + } + } } else { osname = 'Other' osversion = '0' -- GitLab