js瀏覽器獲取網絡鏈接類型

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,因此不少狀況仍是返回unkownnetty

相關文章
相關標籤/搜索