判断当前网络是WiFi还是4G/5G

778 阅读1分钟

在Web项目中,由于浏览器安全限制和隐私保护的考虑,前端JavaScript无法直接获取到用户设备是否连接在Wi-Fi网络上的精确信息。但是,你可以采取一些间接的方法来猜测或推测用户可能处于Wi-Fi环境下。

可以通过JavaScript中的Navigator API来获取网络连接的信息。虽然JavaScript本身并没有直接提供检测网络类型的API,但可以通过一些间接的方式来判断当前网络类型。以下是一种基于网络连接类型的简单判断方法:

function getNetworkType() {
    if (navigator.connection) {
        var connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection;
        var type = connection.effectiveType;

        if (type === 'wifi') {
            console.log('Connected via WiFi');
        } else if (type.includes('4g') || type.includes('5g')) {
            console.log('Connected via 4G/5G');
        } else {
            console.log('Connected via other network type');
        }
    } else {
        console.log('Network information not available');
    }
}

调用方法

getNetworkType();

某些设备或浏览器可能会在User Agent字符串中包含与网络连接类型相关的信息,但这并不是普遍情况,并且可能不准确。

例如,某些移动设备的User Agent字符串可能会包含特定的标识符,这些标识符可能与Wi-Fi或移动数据网络相关。

请注意,这种方法非常不可靠,因为User Agent字符串是可以被用户或应用修改的。