基本概念
连接性
获取当前设备的网络连接类型并监控连接类型的变化。
Connectivity
提供易于使用的 API,整合了相应的平台原生 API 来与网络的连接类型和可用性进行交互。
使用连接性
要使用 Connectivity,请从 @nativescript/core
中导入它。
ts
import { Connectivity } from '@nativescript/core'
获取当前连接类型
要检查当前连接的是哪种类型的网络,请使用 getConnectionType() 方法。
ts
const connectionType: number = Connectivity.getConnectionType()
if (connectionType) {
// `Connectivity.connectionType.none`` is `0` so truthiness can be used to determine if the device is connected to any type of network
fetch('https://httpbin.org/get')
.then((response) => response.text())
.then((result) => console.log(`Fetched ${result} with ${connectionType}`))
} else {
console.log('Not connected to a network.')
}
可以使用 Connectivity.connectionType
枚举轻松地为某些类型的连接添加条件行为。
ts
if (
connectionType === Connectivity.connectionType.wifi ||
connectionType === Connectivity.connectionType.ethernet
) {
// Download large file
} else {
// Download mobile friendly file
}
监控连接类型变化
使用 startMonitoring() 方法可以观察连接类型的变化。
ts
Connectivity.startMonitoring((change: number) => {
switch (change) {
case Connectivity.connectionType.wifi:
case Connectivity.connectionType.ethernet:
console.log('Connected to home network')
break
case Connectivity.connectionType.mobile:
case Connectivity.connectionType.bluetooth:
console.log('Connected to mobile network')
break
case Connectivity.connectionType.vpn:
console.log('Connected to vpn network')
break
default:
console.log('Not connected to any network')
break
}
})
如果要停止监控连接性变化,请使用 stopMonitoring() 函数。
ts
Connectivity.stopMonitoring()
API
getConnectionType()
ts
Connectivity.getConnectionType(): number
此方法检索当前连接类型。它返回一个数字值,表示 connectionType
枚举值之一。
注意
对于 Android,必须将 android.permission.ACCESS_NETWORK_STATE
权限添加到 AndroidManifest.xml
文件中才能使用此方法。
startMonitoring()
ts
Connectivity.startMonitoring(connectionTypeChangedCallback: (newConnectionType: number) => void): void
此方法启动网络连接类型的监控。connectionTypeChangedCallback
是一个函数,当网络连接类型发生变化时将被调用。
stopMonitoring()
ts
Connectivity.stopMonitoring()
此方法停止网络连接类型的监控。
connectionType
ts
Connectivity.connectionType: number
此枚举定义了不同的可能的连接类型。
更多连接类型
none = 0
wifi = 1
mobile = 2
,ethernet = 3
,bluetooth = 4
,vpn = 5