連接
connection
物件,通過公開navigator.connection
,提供了有關該設備的行動電話和無線網路連接的資訊。
屬性
常量
- Connection.UNKNOWN
- Connection.ETHERNET
- Connection.WIFI
- Connection.CELL_2G
- Connection.CELL_3G
- Connection.CELL_4G
- Connection.CELL
- Connection.NONE
訪問功能
從 3.0 版,科爾多瓦作為外掛程式實現了設備級 Api。 使用 CLI 的 plugin
命令,描述在命令列介面,可以添加或刪除一個專案,為此功能:
$ cordova plugin add org.apache.cordova.network-information
$ cordova plugin ls
[ 'org.apache.cordova.network-information' ]
$ cordova plugin rm org.apache.cordova.network-information
這些命令適用于所有有針對性的平臺,但修改如下所述的特定于平臺的配置設置:
-
Android 系統
(in app/res/xml/config.xml) <feature name="NetworkStatus"> <param name="android-package" value="org.apache.cordova.NetworkManager" /> </feature> (in app/AndroidManifest.xml) <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" />
-
黑莓手機 WebWorks
(in www/plugins.xml) <feature name="Network Status"> <param name="blackberry-package" value="org.apache.cordova.network.Network" /> </feature>
-
(在 iOS
config.xml
)<feature name="NetworkStatus"> <param name="ios-package" value="CDVConnection" /> </feature>
-
(在 Windows Phone
Properties/WPAppManifest.xml
)<Capabilities> <Capability Name="ID_CAP_NETWORKING" /> </Capabilities>
-
(在 Tizen
config.xml
)<feature name="http://tizen.org/api/systeminfo" required="true"/>
一些平臺可能支援此功能,而無需任何特殊的配置。請參見在概述部分中的平臺支援。
connection.type
檢查當前活動的網路連接。
說明
此屬性提供快速的方法來確定設備的網路連接狀態,和連線類型。
支援的平臺
- iOS
- Android 系統
- 黑莓手機 WebWorks (OS 5.0 和更高)
- Tizen
- Windows Phone 7 和 8
- Windows 8
快速的示例
function checkConnection() {
var networkState = navigator.connection.type;
var states = {};
states[Connection.UNKNOWN] = 'Unknown connection';
states[Connection.ETHERNET] = 'Ethernet connection';
states[Connection.WIFI] = 'WiFi connection';
states[Connection.CELL_2G] = 'Cell 2G connection';
states[Connection.CELL_3G] = 'Cell 3G connection';
states[Connection.CELL_4G] = 'Cell 4G connection';
states[Connection.CELL] = 'Cell generic connection';
states[Connection.NONE] = 'No network connection';
alert('Connection type: ' + states[networkState]);
}
checkConnection();
完整的示例
<!DOCTYPE html>
<html>
<head>
<title>navigator.connection.type Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// device APIs are available
//
function onDeviceReady() {
checkConnection();
}
function checkConnection() {
var networkState = navigator.connection.type;
var states = {};
states[Connection.UNKNOWN] = 'Unknown connection';
states[Connection.ETHERNET] = 'Ethernet connection';
states[Connection.WIFI] = 'WiFi connection';
states[Connection.CELL_2G] = 'Cell 2G connection';
states[Connection.CELL_3G] = 'Cell 3G connection';
states[Connection.CELL_4G] = 'Cell 4G connection';
states[Connection.CELL] = 'Cell generic connection';
states[Connection.NONE] = 'No network connection';
alert('Connection type: ' + states[networkState]);
}
</script>
</head>
<body>
<p>A dialog box will report the network state.</p>
</body>
</html>
API 更改
科爾多瓦 2.3.0,直到 Connection
物件的訪問通過 navigator.network.connection
後才改為其中, navigator.connection
以匹配的 W3C 規範。 它在其原始位置,是仍然可用,但已廢棄,最終將被刪除。
iOS 的怪癖
- iOS 無法檢測到蜂窩網路連接的類型。
-
navigator.connection.type
is set toConnection.CELL
for all cellular data.
-
Windows Phone 怪癖
When running in the emulator, always detects
navigator.connection.type
asConnection.UNKNOWN
.-
Windows Phone 不能檢測的蜂窩網路連接的類型。
-
navigator.connection.type
is set toConnection.CELL
for all cellular data.
-
Tizen 怪癖
- Tizen 只可以檢測一個 WiFi 或者蜂窩連接。
-
navigator.connection.type
is set toConnection.CELL_2G
for all cellular data.
-