检测操作系统的Google Chrome扩展程序

17

我正在开发谷歌浏览器扩展程序,需要检测Chrome运行的操作系统,但是似乎找不到相关信息。请帮忙! 谢谢。

3个回答

23

最近新增的功能,您可以在Chrome自己的API中使用getPlatformInfo方法

chrome.runtime.getPlatformInfo(function(info) {
    // Display host OS in the console
    console.log(info.os);
});

2
请注意,在内容脚本中无法运行。 - Troggy

6

1
我宁愿使用 navigator.platform - resu

0
我猜 navigator.platform 会更合适,但对我来说,我经常使用基于 navigator.platform 的以下脚本就足够了。
const ua = navigator.userAgent

const getBrowser = (): 'Opera' | 'Chrome' | 'Firefox' | 'Safari' | 'IE' | 'Edge' | 'Unknown' | undefined => {
  if (ua.indexOf('Opera') > -1) {
    return 'Opera'
  }
  if (ua.indexOf('Chrome') > -1) {
    return 'Chrome'
  }
  if (ua.indexOf('Firefox') > -1) {
    return 'Firefox'
  }
  if (ua.indexOf('Safari') > -1) {
    return 'Safari'
  }
  if (ua.indexOf('MSIE') > -1) {
    return 'IE'
  }
  if (ua.indexOf('Trident') > -1) {
    return 'IE'
  }
  if (ua.indexOf('Edge' || 'Chrome') > -1) {
    return 'Edge'
  }
  return 'Unknown'
}

const getOS = (): 'Windows' | 'Mac' | 'Linux' | 'Android' | 'iOS' | 'Unknown' => {
  if (ua.indexOf('Windows') > -1) {
    return 'Windows'
  }
  if (ua.indexOf('Mac') > -1) {
    return 'Mac'
  }
  if (ua.indexOf('Linux') > -1) {
    return 'Linux'
  }
  if (ua.indexOf('Android') > -1) {
    return 'Android'
  }
  if (ua.indexOf('iPhone') > -1) {
    return 'iOS'
  }
  if (ua.indexOf('iPad') > -1) {
    return 'iOS'
  }
  if (ua.indexOf('iPod') > -1) {
    return 'iOS'
  }
  return 'Unknown'
}

export { getBrowser, getOS }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接