KeyState

Enterprise Browser 1.8

Overview

The KeyState API is used to display small icons to the user indicating the current shifted state of the hardware keyboard. The KeyState indicator will display icons for Shift, Alt, Control, Function, Caps, Num lock and Orange key states, growing from the right as necessary if more than one key state is set at once. This API is only supported on a subset of Symbol Technologies' Windows Mobile / CE / Embedded handheld devices (see remarks).

Note: When using the keyState indicator on a VC5090 device, it's possible that the display will be slightly distorted while the KeyState indicator is displayed. This occurs only when the KeyState indicator or similar overlays such as those listed below are set to be visible.

  • addressbar
  • backbutton
  • forwardbutton
  • gobutton
  • minimizebutton
  • quitbutton
  • reloadbutton
  • sipbutton
  • stopbutton

Enabling the API

There are two methods of enabling the KeyState API:

  • Include all ebapi modules
  • Include only the required API modules

For either of these methods, files must be copied to the device 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 KeyState 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.keystate.js"></script>

The ebapi.js file is necessary for all single API inclusions.

Methods

hideStates()

Stops showing keystate icons representing the shifted state of the hardware keyboard.

Parameters

  • callback : CallBackHandler

Returns

Synchronous Return:

  • Void

Platforms

  • Windows Mobile
  • Zebra Devices Only

Method Access:

  • Class Method: This method can only be accessed via the API class object.
    • EB.KeyState.hideStates()

showStates(HASH propertyMap)

Display keystate icons representing the shifted state of the hardware keyboard.

Parameters

  • propertyMap : HASH Optional

    The properties associated with the keystate indicator, its size and position. Not specifying any properties will display the keystate indicators at the bottom right hand corner of the screen.

    • right : INTEGER Default: [Keystate Indicators start at the bottom right of the screen]

      The absolute horizontal position of the keystate indicators in pixels. This is the rightmost edge of the rightmost indicator, where multiple indicators are displayed simultaneously they will grow from right to left.

    • top : INTEGER Default: [Keystate Indicators start at the bottom right of the screen]

      The absolute vertical position of the keystate indicators in pixels.

    • width : INTEGER Default: [A sensible width based on Screen Resolution]

      The width of each keystate indicator in pixels.

    • height : INTEGER Default: [A sensible height based on Screen Resolution]

      The width of each keystate indicator in pixels.

  • callback : CallBackHandler

Returns

Synchronous Return:

  • Void

Platforms

  • Windows Mobile
  • Zebra Devices Only

Method Access:

  • Class Method: This method can only be accessed via the API class object.
    • EB.KeyState.showStates(HASH propertyMap)

Remarks

Devices lacking support

Due to platform limitations this API is not available on the following Zebra Technologies devices:

  • ES400
  • MC45
  • MC65
  • VC70
  • MC45
  • Workabout Pro 4
  • VH10
  • Omnii XT15

Rotating the Screen

The keystate indicator positions are absolute and so when rotating the screen you should also reposition the keystate accordingly to accommodate the new screen layout.