var _platformInfo;

/**
 * 获取浏览器和平台信息
 */
function getPlatformInfo() {
  if (_platformInfo === undefined) {
    var ua = navigator.userAgent;
    _platformInfo = {
      // 是否为移动终端
      isMobile: /AppleWebKit.*Mobile.*/i.test(ua),
      // ios终端
      isIos: /\(i[^;]+;( U;)? CPU.+Mac OS X/i.test(ua),
      // android终端或者uc浏览器
      isAndroid: /Android/i.test(ua) || /Linux/i.test(ua),
      // 是否iPad
      isIPad: /iPad/i.test(ua),
      // 是否为iPhone或者QQHD浏览器
      isIPhone: /iPhone/i.test(ua),
      // Windows Phone
      isWindowsPhone: /Windows Phone/i.test(ua),
      // IE内核
      isTrident: /Trident/i.test(ua),
      // opera内核
      isPresto: /Presto/i.test(ua),
      // 苹果、谷歌内核
      isWebKit: /AppleWebKit/i.test(ua),
      // 火狐内核
      isGecko: /Gecko/i.test(ua) && !/KHTML/i.test(ua),
      // 是否为微信
      isMicroMessenger: /MicroMessenger/i.test(ua),
      // 是否web应该程序，没有头部与底部
      isWebApp: !/Safari/i.test(ua),
      // 微博浏览器
      isWeibo: /Weibo/i.test(ua),
      // UC浏览器
      isUC: /UCBrowser/i.test(ua),
      // QQ浏览器
      isQQ: /MQQBrowser/i.test(ua),
      // 百度浏览器
      isBaidu: /Baidu/i.test(ua),
      // IE浏览器
      isIE: /compatible/i.test(ua) && /msie/i.test(ua),
      // IE11浏览器
      isIE11: !!window.ActiveXObject,
      // 火狐浏览器
      isFirefox: /Firefox/.test(ua),
      // 欧朋浏览器
      isOpera: /Opera/.test(ua) && /OPR/.test(ua),
      // Edge浏览器
      isEdge: /Edge/.test(ua),
      // Chrome浏览器
      isChrome: /Chrome/.test(ua),
      // Safari浏览器
      isSafari: /Safari/.test(ua) && !/Chrome/.test(ua)
    };
  }

  return _platformInfo;
}

export default getPlatformInfo;
