跳转到内容

关于网络状态监听

由于移动设备网络环境不太稳定,当网络发生变化的时候,项目中经常需要给用户一些提示,在LayaNative中有两种方法,可以获得网络环境变化。

开发者可以使用注册监听函数的方式进行监听网络变化,代码如下:

if( conch )
{
conch.setNetworkEvtFunction(function(type)
{
alert(type)
});
}

注意:

1、conch只能在LayaNative环境下调用,在网页版本中是没有conch定义的,所以需要判断一下是否存在。

在LayaAir-IDE中的脚本中添加代码时,如果没有定义,可以这样写:(window as any).conchConfig.xxxx

2、还可以使用if(Render.isConchApp)进行判断。

返回值类为int类型

NET_NO = 0;
NET_WIFI = 1;
NET_2G = 2;
NET_3G = 3;
NET_4G = 4;
NET_YES = 5;
/**
* 枚举网络状态
* NET_NO:没有网络
* NET_2G:2g网络
* NET_3G:3g网络
* NET_4G:4g网络
* NET_WIFI:wifi
* NET_UNKNOWN:未知网络
*/

开发者还可以通过主动查询的方式,查询网络状态,代码如下:

if( conch )
{
var nType = conchConfig.getNetworkType();
}

返回值类为int类型

NET_NO = 0;
NET_WIFI = 1;
NET_2G = 2;
NET_3G = 3;
NET_4G = 4;
NET_YES = 5;

例如,在LayaAir-IDE中增加一个脚本,添加如下代码:

onStart(): void {
var nType = (window as any).conchConfig.getNetworkType();
console.log("network type: " + nType);
}

发布Android项目后,测试使用的网络环境为WiFi环境,因此Android Studio控制台打印的信息为:network type: 1