Overview
This API class allows you to interact with either the WAN or WiFI network of the device.
Enabling the API
There are two methods of enabling the Network API:
- Include all ebapi modules
- Include only the required API modules
For either of these methods, you'll need to include files from the /Enterprise Browser/JavaScript Files/Enterprise Browser
directory on the computer that you installed the Enterprise Browser.
Include all JS API modules
To include all JS APIs, copy the ebapi-modules.js file to a location accessible by the app's files and include a reference to the JavaScript file in the app's HTML. For instance, to include the modules file in the app's index.html
, copy the file to the same directory as that index.html
and add the following line to the HTML's HEAD section:
<script type="text/javascript" charset="utf-8" src="ebapi-modules.js"></script>
Note: that the pathing for this file is relative to the current page.
This will define the EB class within the page. Any page you need to use the modules will need to have the .js file included in this fashion.
Include only the required modules
To include single APIs, you must first include the ebapi.js
in your HTML as well as the API file you want to use. For instance, to use the Network API, I would add the following code to my HTML file(s), assuming the API files have been copied to the same directory as the HTML.
<script type="text/javascript" charset="utf-8" src="ebapi.js"></script>
<script type="text/javascript" charset="utf-8" src="eb.network.js"></script>
The ebapi.js file is necessary for all single API inclusions.
Methods
cancel()
Cancel the request identified by callback. If callback is not specified then all requests will be canceled.
Parameters
- callback : CallBackHandler
Returns
Synchronous Return:
- Void
Platforms
- Android
- Windows Mobile
- Windows CE
Method Access:
- Class Method: This method can only be accessed via the API class object.
EB.Network.cancel()
connectWan(STRING connectionDestination)
Connects the device to a Wide Area Network. The connection destination must be first configured through the Connection Manager (on the device) and the destination name provided to this method. If a connection is already established, you must first call disconnectWan before attempting another connection. A list of available connection destinations is written to the log file when either connectWan or disconnectWan are first specified. Specify the connection as 'Internet' to use the default internet connection defined on the device. If the specified destination does not exist no connection attempt will be made and an entry will be made in the log file.
Parameters
- connectionDestination : STRING
The connection in the Windows Connection manager to use, specify 'Internet' to use the default internet connection.
- callback : CallBackHandler
Callback
Async Callback Returning Parameters: HASH
- phoneSignalStrength : STRING
The signal strength of the phone as a percentage of maximum strength. Returned as a number between 0 and 100. If there is no phone service this field will be 0.
- networkOperator : STRING
The name of the current network operator associated with the SIM card.
- connectionTypeAvailable : STRING
The current data connection type available to RhoElements as provided by the Network. Values can be 'Unavailable', GPRS, 1XRTT, EVDO, EDGE, UMTS, EVDV or HSDPA.
- connectionTypeConnected : STRING
The data connection type to which the device is currently connected. The values returned are identical to connectionTypeAvailable, with the exception that 'Not Connected' replaces 'Unavailable'.
- connectionManagerMessage : STRING
This is the last received status from the Connection Manager. Do NOT use this parameter to determine if you are able to physically send / receive data to a remote host, it only provides an indication of whether the Connection Manager believes the connection is available. To determine if you are connected to a remote host use the detectConnection method.
Returns
Synchronous Return:
- Void
Platforms
- Windows Mobile
Method Access:
- Class Method: This method can only be accessed via the API class object.
EB.Network.connectWan(STRING connectionDestination)
detectConnection(HASH propertyMap)
Begins polling the specified host on the specified URL to check if there is a network connection available. The connection status is reported back via the provided callback. Note that callback will be called only if connection status has changed compared to previous polling. Multiple concurrent detectionConnection is not supported.
Parameters
- propertyMap : HASH
Properties map.
- host : STRING Default: www.zebra.com
When detecting a network connection, this is the URL or IP address of the server to attempt to connect to.
- port : INTEGER Default: 80
When detecting a network connection, this is the port on the host to connect to.
- pollInterval : INTEGER Default: 30000
The time, in milliseconds, between each check for a connection. Note that the actual connection report interval will be the sum of the poll interval and the detection timeout. The minimum allowed value is 5000ms.
- detectionTimeout : INTEGER Default: 1000
The amount of time to attempt to connect to the specified URL before giving up and assuming 'disconnected'. Value is specified in milliseconds.
- callback : CallBackHandler
Callback
Async Callback Returning Parameters: HASH
- connectionInformation : STRING
Whether the device is connected to the specified host and port. Either 'Connected' or 'Disconnected'.
- failureMessage : STRING
If the device is disconnected this field will contain information about why the connection failed.
Returns
Synchronous Return:
- Void
Platforms
- Android
- Windows Mobile
- Windows CE
Method Access:
- Class Method: This method can only be accessed via the API class object.
EB.Network.detectConnection(HASH propertyMap)
disconnectWan()
Disconnects the current WAN connection. DisconnectWan will only affect connections established by RhoElements so if you have not previously called connectWan this function will have no effect.
Parameters
- callback : CallBackHandler
Returns
Synchronous Return:
- Void
Platforms
- Windows Mobile
Method Access:
- Class Method: This method can only be accessed via the API class object.
EB.Network.disconnectWan()
downloadFile(HASH propertyMap)
Download a file to the specified filename. If overwriteFile
flag is the default or set to false, the HEAD request to the server is performed before the download to retrieve the last-modified
header, which is used to support the resumption of an interrupted download. If the targeted server doesn't support HEAD requests, overwriteFile
should be set to true.
Parameters
- propertyMap : HASH
Properties to be used in this request.
- url : STRING
URL of file to be downloaded. Supports HTTP and HTTPS protocols.
- filename : STRING
The path and name of the file to be uploaded.
- overwriteFile : BOOLEAN Default: false
Overwrites the destination file if it already exists.
- callback : CallBackHandler
Callback
Async Callback Returning Parameters: HASH
- status: STRING
Provides download status details; "Ok" indicates success.
- error_code: INTEGER
Provides error code for download result; "200" indicates success.
- uri: STRING
Provides URL of the downloaded file.
Platforms
- Android
- Windows Mobile
- Windows CE
Method Access:
- Class Method: This method can only be accessed via the API class object.
EB.Network.downloadFile(HASH propertyMap)
get(HASH propertyMap)
Perform a HTTP GET request.
Note: This method will perform a POST if you send a body with it. If performing a GET, do not add a body to the call.
Parameters
- propertyMap : HASH
Properties map. Valid `properties` for this parameter are the properties available to this API module. Check the property section for applicable properties.
- callback : CallBackHandler
Callback
Async Callback Returning Parameters: HASH
- body : STRING
The body of the HTTP response.
- headers : HASH
A hash containing the response headers.
- cookies : STRING
The server cookies, parsed and usable for subsequent requests.
- http_error : INTEGER
HTTP error code if response code was not 200.
Returns
Synchronous Return:
- HASH
- body : STRING
The body of the HTTP response.
- headers : HASH
A hash containing the response headers.
- cookies : STRING
The server cookies, parsed and usable for subsequent requests.
- http_error : INTEGER
HTTP error code if response code was not 200.
- body : STRING
Platforms
- Android
- Windows Mobile
- Windows CE
Method Access:
- Class Method: This method can only be accessed via the API class object.
EB.Network.get(HASH propertyMap)
hasCellNetwork()
Returns true if the device is connected to a cell network. Not supported on Windows CE.
Parameters
- callback : CallBackHandler
Callback
Async Callback Returning Parameters: BOOLEAN
Returns
Synchronous Return:
- BOOLEAN
Platforms
- Android
- Windows Mobile
Method Access:
- Class Method: This method can only be accessed via the API class object.
EB.Network.hasCellNetwork()
hasNetwork()
Returns true if the device is connected to a network. Not supported on Windows CE.
Parameters
- callback : CallBackHandler
Callback
Async Callback Returning Parameters: BOOLEAN
Returns
Synchronous Return:
- BOOLEAN
Platforms
- Android
- Windows Mobile
Method Access:
- Class Method: This method can only be accessed via the API class object.
EB.Network.hasNetwork()
hasWifiNetwork()
Returns true if the device is connected to a WiFi network. Not supported on Windows CE.
Parameters
- callback : CallBackHandler
Callback
Async Callback Returning Parameters: BOOLEAN
Returns
Synchronous Return:
- BOOLEAN
Platforms
- Android
- Windows Mobile
Method Access:
- Class Method: This method can only be accessed via the API class object.
EB.Network.hasWifiNetwork()
post(HASH propertyMap)
Perform a HTTP Post.
Parameters
- propertyMap : HASH
The properties for the Network module can be used in this hash along with the following:
- body : STRING
The message body of the HTTP request.
- callback : CallBackHandler
Callback
Async Callback Returning Parameters: HASH
- body : STRING
The body of the HTTP response.
- headers : HASH
A hash containing the response headers.
- cookies : STRING
The server cookies, parsed and usable for subsequent requests.
- http_error : INTEGER
HTTP error code if response code was not 200.
Returns
Synchronous Return:
- HASH
- body : STRING
The body of the HTTP response.
- headers : HASH
A hash containing the response headers.
- cookies : STRING
The server cookies, parsed and usable for subsequent requests.
- http_error : INTEGER
HTTP error code if response code was not 200.
- body : STRING
Platforms
- Android
- Windows Mobile
- Windows CE
Method Access:
- Class Method: This method can only be accessed via the API class object.
EB.Network.post(HASH propertyMap)
startStatusNotify()
Start network status notifications. Notifications are sent when WiFi or Cell network appear / disappear. To check real Internet connectivity use detectConnection method. Not supported on Windows CE.
Parameters
- callback : CallBackHandler
Callback
Async Callback Returning Parameters: HASH
- current_status : STRING
Current status of network connection. Can be "connected" or "disconnected".
- prev_status : STRING
Previous status of network connection. Can be "connected", "disconnected" or "unknown"."
Returns
Synchronous Return:
- Void
Platforms
- Android
- Windows Mobile
Method Access:
- Class Method: This method can only be accessed via the API class object.
EB.Network.startStatusNotify()
stopDetectingConnection()
Ceases network detection. Callback is no longer supported; it has been made optional to preserve backward compatibility.
Parameters
- callback : CallBackHandler
Returns
Synchronous Return:
- Void
Platforms
- Android
- Windows Mobile
- Windows CE
Method Access:
- Class Method: This method can only be accessed via the API class object.
EB.Network.stopDetectingConnection()
stopStatusNotify()
Stop network status notifications. Not supported on Windows CE.
Parameters
- callback : CallBackHandler
Returns
Synchronous Return:
- Void
Platforms
- Android
- Windows Mobile
Method Access:
- Class Method: This method can only be accessed via the API class object.
EB.Network.stopStatusNotify()
uploadFile(HASH propertyMap)
Upload the specified file using HTTP POST.
Parameters
- propertyMap : HASH
The properties for the Network module can be used in this hash along with the following:
- filename : STRING
The path and name of the file to be uploaded.
- body : STRING
The message body of the HTTP request.
- fileContentType : STRING
Content-Type header for the file, defaults to "application/octet-stream".
- multipart : ARRAY
Array of hashes containing file information.
- Object : HASH
Multipart properties.
- filename : STRING
The path and name of the file to be uploaded.
- contentType : STRING
Content-Type header, defaults to "application/octet-stream".
- filenameBase : STRING
Base directory containing the :filename.
- name : STRING
File type, defaults to "blob".
- callback : CallBackHandler
Callback
Async Callback Returning Parameters: HASH
- body : STRING
The body of the HTTP response.
- headers : HASH
A hash containing the response headers.
- cookies : STRING
The server cookies, parsed and usable for subsequent requests.
- http_error : INTEGER
HTTP error code if response code was not 200.
Returns
Synchronous Return:
- HASH
- body : STRING
The body of the HTTP response.
- headers : HASH
A hash containing the response headers.
- cookies : STRING
The server cookies, parsed and usable for subsequent requests.
- http_error : INTEGER
HTTP error code if response code was not 200.
- body : STRING
Platforms
- Android
- Windows Mobile
- Windows CE
Method Access:
- Class Method: This method can only be accessed via the API class object.
EB.Network.uploadFile(HASH propertyMap)
Properties
authPassword
Type
STRING
Description
Password for basic authentication. You must also specify `authType='basic'
Access
- Class: This property can only be accessed via the API class object.
EB.Network.authPassword
This property cannot be accessed via setter or getter methods. It can be used in methods that allow a HASH or Array of properties to be passed in.
Platforms
- Android
- Windows Mobile
- Windows CE
authType
Type
STRING
Description
Type of authentication used for this request. Check the list of available options below. Leaving blank will result in no authentication type.
Values
Possible Values (STRING):
- Constant: EB.Network.AUTH_BASIC - String: basic Basic Authentication Type. uses authUser and authPassword.
Access
- Class: This property can only be accessed via the API class object.
EB.Network.authType
This property cannot be accessed via setter or getter methods. It can be used in methods that allow a HASH or Array of properties to be passed in.
Platforms
- Android
- Windows Mobile
- Windows CE
authUser
Type
STRING
Description
User name for basic authentication. You must also specify authType='basic'
Access
- Class: This property can only be accessed via the API class object.
EB.Network.authUser
This property cannot be accessed via setter or getter methods. It can be used in methods that allow a HASH or Array of properties to be passed in.
Platforms
- Android
- Windows Mobile
- Windows CE
headers
Type
HASH
Description
List of HTTP headers to be used in the network request.
Access
- Class: This property can only be accessed via the API class object.
EB.Network.headers
This property cannot be accessed via setter or getter methods. It can be used in methods that allow a HASH or Array of properties to be passed in.
Platforms
- Android
- Windows Mobile
- Windows CE
httpVerb
Type
STRING
Description
Replaces:http_command HTTP verb to be used in the network request.
Access
- Class: This property can only be accessed via the API class object.
EB.Network.httpVerb
This property cannot be accessed via setter or getter methods. It can be used in methods that allow a HASH or Array of properties to be passed in.
Platforms
- Android
- Windows Mobile
- Windows CE
responseTimeout
Type
INTEGER
Description
Timeout of network requests in seconds. This property has module scope. Do not pass it as hash parameter to methods, use property accessors instead.
Params
Default: 30
Access
- Class: This property can only be accessed via the API class object.
EB.Network.responseTimeout
This property cannot be accessed via setter or getter methods. It can be used in methods that allow a HASH or Array of properties to be passed in.
Platforms
- Android
- Windows Mobile
- Windows CE
url
Type
STRING
Description
URL of the request. This should be fully formatted URL like http://domain.com/
Access
- Class: This property can only be accessed via the API class object.
EB.Network.url
This property cannot be accessed via setter or getter methods. It can be used in methods that allow a HASH or Array of properties to be passed in.
Platforms
- Android
- Windows Mobile
- Windows CE
verifyPeerCertificate
Type
BOOLEAN
Description
Replaces:ssl_verify_peer Verify SSL certificates. When set to false it will allow untrusted certificates.
Params
Default: true
Access
- Class: This property can only be accessed via the API class object.
EB.Network.verifyPeerCertificate
This property cannot be accessed via setter or getter methods. It can be used in methods that allow a HASH or Array of properties to be passed in.
Platforms
- Android
- Windows Mobile
- Windows CE
Remarks
Detecting a connection through proxies
Because the detectConnection method is protocol agnostic, it will not communicate through HTTP proxies to reach a specified URL. In order to determine if you are connected when sitting behind a proxy you should call the method to attempt to connect to your proxy on the appropriate port. A successful connection to the proxy should be taken to assume the device is connected to a network. When configuring your WAN connection bear in mind that the proxy settings defined in the RhoElements configuration file will take precedence.
Detecting a connection over WAN
When detecting a network connection over WAN bear in mind if you specify a low networkPollInterval your device will frequently have an active data connection and may prevent the device occasionally from accepting incoming calls.
Preventing access to the device (WEH / WM)
Receiving phone calls or texts whilst running RhoElements will cause the start button to be displayed on Windows Embedded Handheld devices, potentially offering users access to the operating system. It is recommended to set the following registry keys to disable Operating System access on Windows Embedded Handheld as required. The registry keys will be applied after a warm boot, omit them entirely to restore the Start and 'X' icons.
[HKEY_LOCAL_MACHINE\Software\Microsoft\Shell\BubbleTiles] Location in Registry "HardwareStartKeyEnabled"=dword:00000001 Prevents the Start icon from appearing in the bottom left "HardwareDoneKeyEnabled"=dword:00000001 Prevents the 'X' icon from appearing in the bottom right
SSL Connection Failure in iOS Platform
Due to a limitation in curl for iOS, an appropriate timeout is not used in 'select' system calls for a curl SSL conection. To avoid this SSL connection issue, it is recommended that the iOS native Network library be used instead of curl. To do this, add the two lines below to the rhoconfig.txt file.
For more information, please refer to Avoiding Common Networking Mistakes in the Apple developer reference.
ios_net_curl = 0 ios_direct_local_requests = 0