关于javascript:js浏览器获取网络连接类型

46次阅读

共计 665 个字符,预计需要花费 2 分钟才能阅读完成。

function getNetworkType() {
  /* wired 有线
    bluetooth,
    wifi,
    2g,3g,4g,5g...,
    unkown
  */
  var ua = navigator.userAgent;
  var ut = navigator.connection;
  var utt = ut ? ut.type ? ut.type.toLowerCase() : null : null;
  if(utt){switch (utt) {//bluetooth,
      case 'cellular':
      case 'wimax':
        utt = ut ? ut.effectiveType ? ut.effectiveType.toLowerCase() : null : null;
        break;
      case 'wifi':
        break;
      case 'ethernet':
        utt = 'wired';
      case 'none':
      case 'other':
      case 'unknown':
        utt = null;
      default:
        break;
    }
  }
  var networkStr = utt ? utt : ua.match(/NetType\/\w+/) ? ua.match(/NetType\/\w+/)[0] : '';
  networkStr = networkStr.toLowerCase().replace('nettype/', '');

  return networkStr ? networkStr === '3gnet' ? '3g' : networkStr : 'unknown';
}

userAgent 和 connection 的兼容性其实都不好,特地是 pc,所以很多状况还是返回 unkown

正文完
 0