連接
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>
引用:[為 Windows Phone 應用程式清單][1]
(在 Tizen
config.xml
)<feature name="http://tizen.org/api/systeminfo" required="true"/>
引用: [Tizen Web 應用程式的應用程式清單][2]
一些平臺可能支援此功能,而無需任何特殊的配置。請參見在概述部分中的平臺支援。
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.