NET插件API文档(Uniapp)
    正在准备搜索索引...

    NET插件API文档(Uniapp)

    关于版本

    【源码授权版】和【普通授权版】功能上是完全一样的。
    【源码授权版】适用于项目对外部插件源代码有要求或者需要基于插件源码进行二次开发和定制的场景。源码授权版支持使用标准基座进行运行调试。

    关于插件

    本插件为uniapp提供获取手机所有网络接口IP信息的功能,包括IPv4和IPv6。

    API文档

    在线的API文档链接:插件API文档 API_SCREENSHOT

    如何使用

    import { UtsNetworkUtil, UtsNetworkInterfaceInfoList } from '@/uni_modules/ts-net-tool'
    

    使用UtsNetworkUtil获取网络接口信息

    const networkUtil = new UtsNetworkUtil()
    networkUtil.getNetworkInterfaceInfoList(
    {
    // 网络信息结果
    onNetworkInfo(result : UtsNetworkInterfaceInfoList) {
    for (let item of result["networkInfoList"]) {
    console.log("名称: ", item.name)
    console.log("类型: ", item.networkType)
    console.log("蜂窝制式: ", item.cellularNetworkClass)
    console.log("状态: ", item.status)
    console.log("IPv4: ", item.ipv4Addresses)
    console.log("IPv6: ", item.ipv6Addresses)
    console.log("------------------------------------------")
    }
    },
    // 错误消息(可选)
    onErrorStr(errorMsg : string) {
    console.log("查询网络信息出错:", errorMsg)
    }
    })

    输出结果样例

    名称: wlan0
    类型: WiFi
    蜂窝制式:
    状态: Active
    IPv4: ["192.168.102.29"]
    IPv6: ["fe80::1820:1aff:fe54:8c40%wlan0","2109:895a:3865:52aa:28f7:65ec:fe21:6b22"]
    ------------------------------------------
    名称: rmnet_data2
    类型: Cellular
    蜂窝制式: 5G
    状态: Active
    IPv4: ["10.84.138.208"]
    IPv6: ["fe80::28f7:65ff:fe21:6baa%rmnet_data2","2406:895a:3865:52aa:28f7:34ff:fe21:6baa"]
    ------------------------------------------

    通过过滤获取WIFI的IPv4地址

    function getNetworkInfoPromise() {
    // 可以通过结果回调封装成Promise,方便和异步业务集成
    return new Promise<UtsNetworkInterfaceInfoList>((resolve, reject) => {
    const networkUtil = new UtsNetworkUtil()
    networkUtil.getNetworkInterfaceInfoList(
    {
    // 网络信息结果
    onNetworkInfo(result : UtsNetworkInterfaceInfoList) {
    resolve(result)
    },
    // 错误消息(可选)
    onErrorStr(errorMsg : string) {
    reject(errorMsg)
    }
    })
    })
    }

    function getIPv4ForWifi() {
    getNetworkInfoPromise()
    .then((data : UtsNetworkInterfaceInfoList) => {
    const wifiNetwork = data.networkInfoList.find((element) => element.networkType == "WiFi")
    if (wifiNetwork) {
    console.log(`WIFI的IPv4地址: ${wifiNetwork.ipv4Addresses[0]}`)
    }
    }).catch((errStr : string) => {
    console.log(`获取IP信息错误: ${errStr}`)
    })
    }

    输出结果样例

    WIFI的IPv4地址: 192.168.102.29

    权限要求

    需要增加以下权限

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

    需要增加以下权限

    <key>NSLocalNetworkUsageDescription</key>
    <string>用于检测网络状态</string>
    <key>NSCarrierUsageDescription</key>
    <string>需要获取蜂窝网络类型</string>