我想知道用户的计算机上使用的操作系统(Windows、MacOS、Linux、Android、iOS等)。 在FMX中,我可以简单地从System.SysUtils执行TOSVersion.ToString来获得操作系统,但在TMS Web Core中它不起作用。我得到以下错误: [错误]找不到标识符“TOSVersion” 如何在TMS Web Core中使用 Delphi 检查或获取操作系统?
function GetOperatingSystem(): String;
var
UserAgent: String;
begin
UserAgent := window.navigator.userAgent;
Result := 'Unknown';
if (UserAgent.indexOf('Windows NT 10.0') <> -1) then Result := 'Windows 10'
else if (UserAgent.indexOf('Windows NT 6.2') <> -1) then Result := 'Windows 8'
else if (UserAgent.indexOf('Windows NT 6.1') <> -1) then Result := 'Windows 7'
else if (UserAgent.indexOf('Windows NT 6.0') <> -1) then Result := 'Windows Vista'
else if (UserAgent.indexOf('Windows NT 5.1') <> -1) then Result := 'Windows XP'
else if (UserAgent.indexOf('Windows NT 5.0') <> -1) then Result := 'Windows 2000'
else if (UserAgent.indexOf('Windows Phone') <> -1) then Result := 'Windows 10 Mobile'
else if (UserAgent.indexOf('iPhone') <> -1) then Result := 'iOS'
else if (UserAgent.indexOf('Mac') <> -1) then Result := 'MacOS'
else if (UserAgent.indexOf('AppleTV') <> -1) then Result := 'tvOS'
else if (UserAgent.indexOf('Android') <> -1) then Result := 'Android'
else if (UserAgent.indexOf('Linux') <> -1) then Result := 'Linux'
else if (UserAgent.indexOf('X11') <> -1) then Result := 'UNIX';
end;
1条答案
按热度按时间myss37ts1#
您可以使用以下函数:
但请注意,这并不总是100%准确。userAgent可以通过浏览器或代码进行更改。它还将Windows 11检测为Windows 10。
然而,有一个规范提案旨在帮助解决上述问题:https://wicg.github.io/ua-client-hints/
还有一个this (detectOS.js) JavaScript库,您可以使用它来检测操作系统。