如何在 TMS Web Core 网站中获取用户的浏览器?

问题描述 投票:0回答:1

我想知道用户计算机上安装的是什么浏览器(Microsoft Edge、Google Chrome、Mozilla Firefox、Opera、Safari 等)。

如果我还可以看到用户使用的浏览器版本,那就太好了。

如何使用 Delphi 检查或获取浏览器名称和/或浏览器版本?

delphi browser tms-web-core
1个回答
0
投票

您可以从

window.navigator.userAgentData.brands
获取浏览器名称和版本,但这尚未在 TMS Web Core 中原生实现。
window.navigator.userAgentData.brands
还没有在所有浏览器中实现。

但这里有一个答案,使用

window.navigator.userAgentData.brands
然后使用
window.navigator.userAgent
作为后备,以防浏览器不支持第一种方法:

uses Web;

...

function GetBrowser(IncludeVersion: Boolean): String;
var
  UserAgent: String;
begin
  Result := '';
  asm
    const userAgentData = window?.navigator?.userAgentData?.brands;
    if (userAgentData !== undefined) {
      Result = `${userAgentData[0].brand}`;
      if (IncludeVersion === true)
        Result = `${Result} (${userAgentData[0].version})`;
    }
  end;
  if (Result = '') then
  begin // Fallback in case browser doesn't have "userAgentData.brands"
    UserAgent := window.navigator.userAgent;
    Result := 'Unknown Browser';
    if (UserAgent.indexOf('Firefox') <> -1) then Result := 'Mozilla Firefox'
    else if (UserAgent.indexOf('Safari') <> -1) then Result := 'Safari'
    else if (UserAgent.indexOf('Trident') <> -1) then Result := 'Internet Explorer'
    else if (UserAgent.indexOf('Edg') <> -1) then Result := 'Microsoft Edge'
    else if (UserAgent.indexOf('Chrome') <> -1) then Result := 'Google Chrome'
    else if (UserAgent.indexOf('Vivaldi') <> -1) then Result := 'Vivaldi'
    else if (UserAgent.indexOf('YaBrowser') <> -1) then Result := 'Yandex Browser'
    else if (UserAgent.indexOf('OPR') <> -1) then Result := 'Opera';

    if (IncludeVersion = true) then
      Result := Result + ' (Unknown Version)';
  end;
end;
© www.soinside.com 2019 - 2024. All rights reserved.