Blackberry Container

Table of Contents


The Blackberry container is a standard Blackberry native UIApplication implemented under OS6. Its implementation includes the following aspects:

  • ICEmobileContainer implements the web container view using a WebKit BrowserField class and a few Browser support classes.
  • ApplicationOptions implemented in the Blackberry options infrastructure (accessable under 'Third Party Applications') contains an options screen defined using Blackberry widgets and layout. Properties are defined in instance of Persistable and the values displayed and edited in an implementation of OptionsProvider
  • ApplicationScreen  implements a standard Blackberry Screen and contains the BrowserField as the only visible component. On startup, the Screen class defines the menu layout which contains Home, Back, and URL history.

The Blackberry container is implemented in a single monolithic application, with javascript extensions exposing device capabilities to ICEmobile components (as well as other web layers).  JavaScript to Java interfaces are exposed using standard ScriptEngineaddExtension() calls.


The ICEmobileContainer class is the main UIApplication subclass for the device container and presents the web application interfaces in a BrowserField instance. Configurable aspects in the BlackBerry Container include:

  • Home URL is the initial URL that the application loads when first started, and is controlled by a constant.
    protected static final String HOME_URL = "http://your_url";
  • Application Menu items are implemented as standard subclass extensions to MenuItem and added to each screen subclass (addMenuItem( MenuItem) ) as required. The basic set of container options can be configured at a code level through the state of some boolean member variables in ICEmobileContainer. Standard container options include:
    • Reload reload the Application home URL. 
    • History consists of a list of the last 10 (configurable at compile time) visited URLs. 
    • Back revisit the previously loaded page. 
    • In addition, several debugging centric menu options are available for development capabilities in the development kit.
  • Preference Handling is implemented in ICEmobileContainer through the use of an OptionsProvider subclass in conjunction with a Properties holder that implements Persistable
  • URL History Size is controlled by a constant.  
    protected static final int HISTORY_SIZE = 10;

Container Options

The BlackberryOptionsProvider class implements the OptionsProvider interface and is responsible for populating a Screen subclass (provided by the system) with the widgets required to edit and display the properties exposed by the BlackberryOptionsProperties class.  The Blackberry ICEmobileContainer fetches the value of the properties from the Persistable class and uses them to configure operations both during startup and when notified by the OptionsProvider that the Options have been saved. The following stock preferences are supported:

  • New URL allows you to specify a new URL to navigate to. This is useful for development purposes and can be used as the application Home page. A drop down list can be used to revisit previously typed URLs easier than typing them by hand.


The RIM BrowserFieldHistory object supports the notion of back/forward various page counts, but doesn't support displaying the URLs so we have implemented a HostoryManager that supports the last 10 URLs visited. 

Application Branding

The ICEmobileContainer performs no specific branding of the container view itself, so all branding of the UI is achieved in the web application. The following elements of the container can be modified to brand the native container application. The Eclipse project manages the standard Blackberry application description file: BlackBerry_App_Descriptor.xml and therein are some branding aspects:

  • Title The title of the application as it appears in the Blackberry application menu
  • Application Icon The name of an image that will appear in the Blackberry application menu. This can be located within the Eclipse project structure, or external to the Eclipse workspace. The system s/w scales this image to an appropriate size.
  • Application wait Screen consists of an image shown while the application is loading the HOME Url. This currently exists in the res/img directory and can be overwritten, future versions of the application will allow defining the image name configurably.

Build Environment

The ICEmobileContainer build environment is based on the Blackberry Java development plugin for Eclipse. This plugin allows the creation of Blackberry projects with HelloWorld applications, project continuous build and deployment in either the simulator or device menu choices. Debugging can be done in either the simulator or an actual device (with limitations). Network transport is achieved in the simulator via an MDS simulator available in the SDK. 

Device Container

The device container lives in the directory mobi/client/blackberry/container. 

Integration Libraries

No such concept in Blackberry. The script classes for all integration libraries are included in all projects.

Application Deployment

Application deployment is done through project specific menus in Eclipse. Project signing is performed by applying to RIM for project signing keys as described here and, once they arrive from RIM,  installing them into Eclipse. The signing itself is done through project specific menus in Eclipse which is part and parcel of installing to a device.

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

© Copyright 2016 ICEsoft Technologies Canada Corp.