Skip to content

初始化

方法名

init

用法

  • 用法如下:
    js
    module.init({
      params: {
        //前台服务通知标题
        notificationTitle: "安卓WIFI操作UTS原生插件",
        //前台服务通知内容
        notificationContent: "正在监听插件的数据传输...",
        //前台服务通知描述
        notificationDes: "用于接收插件数据传输的通知通道",
        //接收文件的保存目录
        // receiveFileDir:""
      },
      complete: (res) => {
        console.log(res)
        if (res.code == 0) {
          let data = res.data || {};
          let type = data.type || "";
          if (type == "onScan") {
            //扫描结果
            let scanResults = data.scanResults || [];
            this.wifiList = scanResults.map(item => {
              return {
                SSID: item.SSID
              }
            });
    
          } else if (type == "onWifiState") {
            //wifi状态
            let state = data.state;
            switch (state) {
              case "WIFI_STATE_ENABLED":
                //wifi已开启
                this.isChecked = true;
                break
              case "WIFI_STATE_DISABLED":
                //wifi已开启
                this.isChecked = false;
                this.wifiList = [];
                break
            }
          } else if (type == "onServiceConnected") {
            //服务已连接,此时可以进行wifi操作
            this.serviceConnect = true;
            //获取本机ip
            this.getLocalIpAddress();
          } else if (type == "onWifiConnectState") {
            //wifi已连接
            let state = data.state;
            let wifiInfo = data.wifiInfo;
            if (state) {
              this.logs.push("wifi已连接");
              this.logs.push("wifi信息:" + JSON.stringify(wifiInfo))
              this.connectedWifi = "当前连接:" + wifiInfo.SSID;
              //获取本机ip
              this.getLocalIpAddress();
            } else {
              this.localIp = "本机IP: 等待获取...";
              this.connectedWifi = "当前连接:未连接";
              this.logs.push("wifi已断开")
              this.logs.push("wifi信息:" + JSON.stringify(wifiInfo))
            }
          } else if (type == "onTextReceived") {
            //收到发送的消息
            let text = data.text;
            this.showMessage("收到消息:" + text)
          } else if (type == "onReceiveRequest") {
            //收到文件请求
            this.sendFileInfo = data;
            this.$refs.refFileRequestPop.open()
          } else if (type == "onTransferProgress") {
            //传输进度
            if (!this.filePopIsOpen) {
              this.$refs.refFileProgressPop.open();
              this.filePopIsOpen = true;
            }
            this.filePop.percent = ((data.transferredSize / data.totalSize) * 100).toFixed(2);
            this.filePop.size = data.transferredSize;
            this.filePop.totalSize = data.totalSize;
          } else if (type == "onTransferComplete") {
            //传输完成
            this.$refs.refFileProgressPop.close();
            this.filePopIsOpen = false;
            let success = data.success;
            if (success) {
              if (!this.isSendDevice) {
                //文件路径
                let path = data.path;
                this.showMessage("文件保存路径:" + path)
              } else {
                this.showMessage("发送完成")
              }
            } else {
              let message = data.message;
              this.showMessage("传输出错:" + message)
            }
            this.isSendDevice = false
          }
        }
      }
    })
    js
    module.init({
      params: {
        //前台服务通知标题
        notificationTitle: "安卓WIFI操作UTS原生插件",
        //前台服务通知内容
        notificationContent: "正在监听插件的数据传输...",
        //前台服务通知描述
        notificationDes: "用于接收插件数据传输的通知通道",
        //接收文件的保存目录
        // receiveFileDir:""
      },
      complete: (res : LevenResult) => {
        console.log(res)
        if (res.code == 0) {
          let data = res.data;
          let type = data.getString("type");
          if (type == "onScan") {
            //扫描结果
            let scanResults : UTSJSONObject[] = data.getArray("scanResults") as UTSJSONObject[];
            wifiList.value = scanResults.map((item : UTSJSONObject) => {
              return {
                SSID: item.getString("SSID")
              } as wifiItem
            });
          } else if (type == "onWifiState") {
            //wifi状态
            let state = data.getString("state");
            switch (state) {
              case "WIFI_STATE_ENABLED":
                //wifi已开启
                isChecked.value = true;
                break
              case "WIFI_STATE_DISABLED":
                //wifi已开启
                isChecked.value = false;
                wifiList.value = [];
                break
            }
          } else if (type == "onServiceConnected") {
            //服务已连接,此时可以进行wifi操作
            serviceConnect.value = true;
            //获取本机ip
            getLocalIpAddress();
          } else if (type == "onWifiConnectState") {
            //wifi已连接
            let state = data.getBoolean("state")!;
            let wifiInfo = data.getJSON("wifiInfo");
            if (state) {
              logs.value.push("wifi已连接");
              logs.value.push("wifi信息:" + JSON.stringify(wifiInfo))
              connectedWifi.value = "当前连接:" + wifiInfo?.getString("SSID");
              //获取本机ip
              getLocalIpAddress();
            } else {
              localIp.value = "本机IP: 等待获取...";
              connectedWifi.value = "当前连接:未连接";
              logs.value.push("wifi已断开")
              logs.value.push("wifi信息:" + JSON.stringify(wifiInfo))
            }
          } else if (type == "onTextReceived") {
            //收到发送的消息
            let text = data.getString("text");
            showMessage("收到消息:" + text)
          } else if (type == "onReceiveRequest") {
            //收到文件请求
            sendFileInfo.value = {
              fileName: data.getString("fileName"),
              fileSize: data.getNumber("fileSize")
            } as fileItem;
            fileRequestPopShow.value = true
          } else if (type == "onTransferProgress") {
            //传输进度
            if (!fileProgressPopShow.value) {
              fileProgressPopShow.value = true
            }
            let transferredSize : number = data.getNumber("transferredSize")!
            let totalSize : number = data.getNumber("totalSize")!
            filePop.value.percent = parseFloat(((transferredSize / totalSize) * 100).toFixed(2));
            filePop.value.size = transferredSize;
            filePop.value.totalSize = totalSize;
          } else if (type == "onTransferComplete") {
            //传输完成
            fileProgressPopShow.value = false;
            let success = data.getBoolean("success")!;
            if (success) {
              if (!isSendDevice.value) {
                //文件路径
                let path = data.getString("path");
                showMessage("文件保存路径:" + path)
              } else {
                showMessage("发送完成")
              }
            } else {
              let message = data.getString("message");
              showMessage("传输出错:" + message)
            }
            isSendDevice.value = false
          }
        }
      }
    } as LevenOptions)
  • 参数说明
    参数名参数类型是否必填默认值参数描述
    paramsObject接口请求参数
    params.notificationTitleString数据传输服务前台服务通知标题
    params.notificationContentString正在监听数据传输...前台服务通知内容
    params.notificationDesString用于接收数据传输的通知通道前台服务通知描述
    params.receiveFileDirString接收文件保存路径,绝对路径,默认为公共下载目录
    successFunction执行成功的函数
    failFunction执行失败的函数
    completeFunction执行完成的函数,不管成功还是失败都会执行

回调

  • 示例
    json
    {
        "data": {
            "type": "onServiceConnected"
        },
        "message": "",
        "code": 0
    }
  • 回调说明:
    参数名参数类型参数描述
    messageString消息提示
    dataObject数据对象
    data.typeString类型,具体可参考类型:
    onScan:wifi扫描结果回调
    onWifiState:wifi状态回调
    onWifiConnectState:wifi连接状态回调
    onServiceConnected:服务连接成功回调
    onServiceDisconnected:服务断开连接回调
    onTextReceived:收到文本消息回调
    onTransferProgress:文件传输进度回调
    onTransferComplete:文件传输完成回调
    onReceiveRequest:文件传输请求回调
    data.scanResultsJSONObject[]wifi扫描结果, onScan回调中返回
    data.scanResults.BSSIDString扫描结果wifi的物理 MAC 地址
    data.scanResults.capabilitiesString扫描结果wifi加密类型
    data.scanResults.centerFreq0Integer扫描结果wifi信号的中心频率
    data.scanResults.centerFreq1Integer扫描结果wifi信号的中心频率
    data.scanResults.channelWidthInteger扫描结果wifi信号的频宽
    data.scanResults.operatorFriendlyNameString扫描结果wifi运营商友好名称
    data.scanResults.venueNameString扫描结果wifi场所名称
    data.scanResults.is80211mcResponderBoolean扫描结果wifi是否支持 IEEE 802.11mc 协议
    data.scanResults.isPasspointNetworkBoolean扫描结果wifi网络是否为 Passpoint(即 Wi-Fi CERTIFIED Hotspot 2.0)网络
    data.scanResults.frequencyInteger扫描结果wifi频率
    data.scanResults.levelInteger扫描结果wifi信号强度
    data.scanResults.timestampInteger扫描结果wifi信号在系统启动后被最后一次检测到的时间
    data.scanResults.SSIDInteger扫描结果wifi热点的名称
    data.scanResults.wifiStandardInteger扫描结果wifi接入点所使用的 IEEE 802.11 标准
    data.scanResults.apMldMacAddressObject扫描结果wifiWi-Fi 7 (802.11be)‌ 接入点(AP)的 ‌多链路设备(MLD, Multi-Link Device)MAC 地址
    data.scanResults.apMldMacAddress.typeInteger地址的类型
    data.scanResults.apMldMacAddress.isLocallyAssignedBoolean是否是本地分配的地址
    data.scanResults.apMldMacAddress.linkLocalIpv6FromEui48MacObject从 MAC 地址创建链路本地 Inet6Address
    data.scanResults.apMldMacAddress.linkLocalIpv6FromEui48Mac.addressbyte[]InetAddress 对象的原始 IP 地址
    data.scanResults.apMldMacAddress.linkLocalIpv6FromEui48Mac.hostAddressStringIP地址字符串
    data.scanResults.apMldMacAddress.linkLocalIpv6FromEui48Mac.isLoopbackAddressBoolean是否为环回地址
    data.scanResults.apMldMacAddress.linkLocalIpv6FromEui48Mac.isIPv4CompatibleAddressBoolean是否为与IPv4兼容的IPv6地址
    data.scanResults.apMldMacAddress.linkLocalIpv6FromEui48Mac.scopedInterfaceObject作用域接口
    data.scanResults.apMldMacAddress.linkLocalIpv6FromEui48Mac.scopedInterface.displayNameString网络接口的显示名称
    data.scanResults.apMldMacAddress.linkLocalIpv6FromEui48Mac.scopedInterface.nameString网络接口的名称
    data.scanResults.apMldMacAddress.linkLocalIpv6FromEui48Mac.scopedInterface.indexInteger网络接口网络接口的索引的名称
    data.scanResults.apMldMacAddress.linkLocalIpv6FromEui48Mac.scopedInterface.mtuInteger最大传输单元
    data.scanResults.apMldMacAddress.linkLocalIpv6FromEui48Mac.scopedInterface.isLoopbackBoolean是否为环回接口
    data.scanResults.apMldMacAddress.linkLocalIpv6FromEui48Mac.scopedInterface.isPointToPointBoolean是否为点对点接口
    data.scanResults.apMldMacAddress.linkLocalIpv6FromEui48Mac.scopedInterface.isUpBoolean是否已启动并正在运行
    data.scanResults.apMldMacAddress.linkLocalIpv6FromEui48Mac.scopedInterface.supportsMulticastBoolean是否支持多播
    data.scanResults.apMldMacAddress.linkLocalIpv6FromEui48Mac.scopedInterface.isVirtualBoolean是否为虚拟接口
    data.scanResults.apMldMacAddress.linkLocalIpv6FromEui48Mac.scopeIdInteger如果此实例与某个接口相关联,则返回数字scopeId
    data.scanResults.apMldMacAddress.linkLocalIpv6FromEui48Mac.isAnyLocalAddressBoolean是否是通配符地址中的InetAddress
    data.scanResults.apMldMacAddress.linkLocalIpv6FromEui48Mac.isLinkLocalAddressBooleanInetAddress是否为链路本地地址
    data.scanResults.apMldMacAddress.linkLocalIpv6FromEui48Mac.isMCGlobalBoolean多播地址是否具有全局范围
    data.scanResults.apMldMacAddress.linkLocalIpv6FromEui48Mac.isMCLinkLocalBoolean多播地址是否具有链路范围
    data.scanResults.apMldMacAddress.linkLocalIpv6FromEui48Mac.isMCNodeLocalBoolean多播地址是否具有节点范围
    data.scanResults.apMldMacAddress.linkLocalIpv6FromEui48Mac.isMCOrgLocalBoolean多播地址是否具有组织范围
    data.scanResults.apMldMacAddress.linkLocalIpv6FromEui48Mac.isMCSiteLocalBoolean多播地址是否具有站点范围
    data.scanResults.apMldMacAddress.linkLocalIpv6FromEui48Mac.isMulticastAddressBoolean是否为IP多播地址
    data.scanResults.apMldMacAddress.linkLocalIpv6FromEui48Mac.isSiteLocalAddressBoolean是否为站点本地地址
    data.scanResults.apMldMacAddress.linkLocalIpv6FromEui48Mac.canonicalHostNameStringIP地址的完全限定域名
    data.scanResults.apMldMacAddress.linkLocalIpv6FromEui48Mac.hostNameStringIP地址对应的主机名
    data.scanResults.apMldMacAddress.apMloLinkIdIntegerWi-Fi 7接入点的多链路操作(MLO)链路ID
    data.scanResults.apMldMacAddress.mloLinksObject[]Wi-Fi 7接入点的多链路操作(MLO)关联链路
    data.scanResults.apMldMacAddress.mloLinks.linkIdInteger链接ID
    data.scanResults.apMldMacAddress.mloLinks.rxLinkSpeedMbpsInteger当前接收链接速度(单位:Mbps)
    data.scanResults.apMldMacAddress.mloLinks.rssiInteger链路的接收信号强度
    data.scanResults.apMldMacAddress.mloLinks.txLinkSpeedMbpsInteger传输链路速度(单位为 Mbps)
    data.scanResults.apMldMacAddress.mloLinks.bandInteger链接的Wi-Fi频段
    data.scanResults.apMldMacAddress.mloLinks.apMacAddressObject链路的AP MAC地址,具体可参考其他字段
    data.scanResults.apMldMacAddress.mloLinks.staMacAddressObject链路的STA MAC地址,具体可参考其他字段
    data.scanResults.apMldMacAddress.mloLinks.channelInteger链接的频道号
    data.scanResults.apMldMacAddress.mloLinks.stateInteger链接的状态
    data.stateString / Boolean状态,类型为String时为onWifiState的回调,类型为Boolean时为onWifiConnectState的回调,为String时含义如下:
    WIFI_STATE_DISABLING:正在断开连接
    WIFI_STATE_DISABLED:已断开连接
    WIFI_STATE_ENABLING:正在连接
    WIFI_STATE_ENABLED:已连接
    WIFI_STATE_UNKNOWN:未知状态
    为Boolean类型时表示wifi是否连接成功
    data.wifiInfoObject当前连接的wifi信息,onWifiConnectState回调返回
    data.wifiInfo.wifiStandardIntegerWi-Fi连接标准
    data.wifiInfo.maxSupportedRxLinkSpeedMbpsInteger支持的最大接收链路速度(单位:Mbps)
    data.wifiInfo.maxSupportedTxLinkSpeedMbpsInteger支持的最大传输链路速度(单位:Mbps)
    data.wifiInfo.apMloLinkIdIntegerWi-Fi 7接入点的多链路操作(MLO)链路ID
    data.wifiInfo.mloLinkListObject[]Wi-Fi 7接入点的多链路操作(MLO)关联链路,结构字段说明可参考上方data.scanResults.apMldMacAddress.mloLinks
    data.wifiInfo.apMldMacAddressObject已连接接入点的多链路设备(MLD)MAC地址,可参考上方说明
    data.wifiInfo.isRestrictedBoolean当前Wifi网络是受限网络
    data.wifiInfo.applicableRedactionsInteger返回一个位掩码,该掩码包含所有基于此TransportInfo(传输信息)进行的适用审查(基于接收方应用程序所拥有的权限)
    data.wifiInfo.currentSecurityTypeInteger当前802的安全类型
    data.wifiInfo.subscriptionIdInteger如果此网络由运营商配置,则返回设备上相关SIM卡对应的订阅ID
    data.wifiInfo.associatedMloLinksObject[]返回Wi-Fi 7接入点的相关多链路操作(MLO)链路
    data.wifiInfo.passpointFqdnString如果网络是Passpoint网络,则返回其完全限定域名
    data.wifiInfo.passpointProviderFriendlyNameString如果网络是Passpoint网络,则返回该网络的提供商友好名称
    data.wifiInfo.rxLinkSpeedMbpsInteger返回当前接收链接速度(单位为 Mbps)
    data.wifiInfo.txLinkSpeedMbpsInteger返回当前传输链路速度(单位为 Mbps)
    data.wifiInfo.BSSIDString当前接入点的基本服务集标识符
    data.wifiInfo.frequencyInteger频率
    data.wifiInfo.hiddenSSIDBoolean是否隐藏SSID
    data.wifiInfo.linkSpeedInteger当前链接速度
    data.wifiInfo.macAddressString连接所使用的MAC地址
    data.wifiInfo.networkIdInteger网络标识
    data.wifiInfo.rssiInteger信号强度
    data.wifiInfo.SSIDInteger网络名称
    data.wifiInfo.ipAddressIntegerIP地址整形
    data.textString收到的消息,onTextReceived回调返回
    data.progressInteger传输进度,onTransferProgress回调返回
    data.transferredSizeInteger已传输大小,onTransferProgress回调返回
    data.totalSizeInteger总大小,onTransferProgress回调返回
    data.successBoolean传输是否成功,onTransferComplete回调返回
    data.messageString传输描述,onTransferComplete回调返回
    data.pathString文件保存路径,onTransferComplete回调返回
    data.fileNameString文件名称,onReceiveRequest回调返回
    data.fileSizeInteger文件大小,onReceiveRequest回调返回
    codeInteger返回类型,0.成功,其他:失败