先在module.json5文件中配置网络权限ohos.permission.INTERNET和允许应用获取数据网络信息ohos.permission.GET_NETWORK_INFO。
完整示例参考如下:
import { connection } from '@kit.NetworkKit'; import { BusinessError } from '@kit.BasicServicesKit'; let netCon: connection.NetConnection = connection.createNetConnection(); @Entry @Component struct Connection { aboutToAppear(): void { // 先使用register接口注册订阅事件 netCon.register((error: BusinessError) => { console.error(JSON.stringify(error)); }); } build() { Column() { Text('开始检测网络状态') .onClick(() => { // 订阅网络丢失事件 netCon.on('netLost', (data: connection.NetHandle) => { console.info(`网络丢失: ${data.netId}`); }); // 订阅网络能力变化事件 netCon.on('netCapabilitiesChange', (data: connection.NetCapabilityInfo) => { console.info(`订阅网络能力变化: ${data.netCap.bearerTypes}`); }); // 订阅网络可用事件 netCon.on('netAvailable', (data: connection.NetHandle) => { console.info(`网络可用: ${data.netId}`); }); }) } } }
Q:开发预下载的功能,需要判断当前app的网络请求为闲时进行下载,是否有相关API可以进行判断?
A:可以使用connection模块的on('netBlockStatusChange')监听事件判断当前网络的阻塞状态。