Overview
The NativeTabbar methods let you use multiple instances of the RhoMobile webview in separate tabs. On Android, the tabs are true Native Tabbar controls to give your application a native look and feel. On Windows Mobile/CE there are no visible tabs, but can be used in conjunction with shortcuts to run multiple 'applications' from a single instance. Either Tabbar or Toolbar should be used in an application - Tabbar and Toolbar shouldnot be used simultaneously.
Enabling the API
There are two methods of enabling the NativeTabbar API:
- Include all ebapi modules or
- Include only the API modules you need
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, you must copy the ebapi-modules.js file to a location accessible by your app's files and include the JavaScript file in your app. For instance, to include the modules file in your index.html, with the file in the same directory as your index.html, you would add the following line to the section of your index.html:
<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 modules you need
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 NativeTabbar 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.nativetabbar.js"></script>
The ebapi.js file is necessary for all single API inclusions.
Methods
create(ARRAY tabElements, HASH tabBarProperties)
Removes the current tabbar and replaces it with this one. Callback will be called when tab is switched. Whilst the actual number of tabs you can create will depend on the memory available on your device there is an absolute upper limit of 30 tabs in any one application.
Parameters
- tabElements : ARRAY
Array of Tab elements.
- tabElement : HASH
Properties of Tab elements.
- label : STRING
Visible label to display on the tabbar.
- action : STRING
URL to page which will be loaded into tab. It may be JavaScript method to call: 'javascript: methodOnTab();'. Or path to html page to load.
- icon : STRING
Icon Relative path (from Enterprise Browser application) to local files on the device. Platforms: Win32, Android
- reload : BOOLEAN Default: false
When tab is activated - page in tab will be reloaded.
- selectedColor : INTEGER
Change the selected color of this tab. On Android this works only if you setup selectedColor for all tabs and also setup backgroundColor for the whole Tabbar. This property change background color on Android according to the platform's UI-style specifications. Platforms: Win32, Android
- disabled : BOOLEAN Default: false
Tab will be displayed as disabled. Platforms: Win32, Android
- backgroundColor : INTEGER
Background color for tab. Use when your application background color is not white for removing blink during switch tabs. Platforms: Win32, Android
- useCurrentViewForTab : BOOLEAN Default: false
Gives a smooth transfer to a newly opened tab from the current view into this Tab and make this Tab active. Only one Tab can have this parameter. Platforms: WM, CE, Win32, Android
- perishable : BOOLEAN Default: false
Sets whether this tab is allowed to be destroyed when a memory limit is reached (Windows Mobile) Platforms: WM
- createOnInit : BOOLEAN Default: false
Create tab immediately when TabBar is created. Action also will be executed. If false, the tab will be created when it is switched to. Don't use this parameter on the devices with a small amount of RAM. Platforms: WM
- tabBarProperties : HASH
Properties of TabBar.
- backgroundColor : INTEGER
Background color of the tabbar. Platforms: Win32, Android
- hiddenTabs : BOOLEAN Default: true
Do not display Tabs with labels.Only hiddenTab=true is currently supported. Platforms: WM
- createOnInit : BOOLEAN Default: false
Create tabs immediately when TabBar is created. Action also will be executed. If false, then each tab will be created when first switch to the tab is executed. Don't use this parameter on the devices with a small amount of RAM. Platforms: WM
- placeTabsBottom : BOOLEAN
Place TabBar to bottom instead of default top - only for Android. Platforms: Android
- callback : CallBackHandler
Callback
Async Callback Returning Parameters: HASH
- tab_index : INTEGER
New tab index.
- newTabIndex : INTEGER
New tab index. Platforms: WM
- oldTabIndex : INTEGER
New tab index. If you switched to first activated tab, when oldTabIndex will be -1, which means that there was no old tab index exists. Platforms: WM
- tabEvent : STRING
Platforms: WM
Possible Values :
- onTabFocus
- Fires when a tab gains focus.
- onTabNewError
- Fires when a new tab cannot be created.
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.NativeTabbar.create(ARRAY tabElements, HASH tabBarProperties)
currentTabIndex()
Returns the current tab 0-based index.
Parameters
- callback : CallBackHandler
Callback
Async Callback Returning Parameters: INTEGER
Returns
Synchronous Return:
- INTEGER
Platforms
- Android
- Windows Mobile
- Windows CE
Method Access:
- Class Method: This method can only be accessed via the API class object.
EB.NativeTabbar.currentTabIndex()
remove()
Removes all tabbar except the default tabbar whose index value is 0. Does nothing if there is no active tabbar other than tab 0.
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.NativeTabbar.remove()
removeTab(INTEGER tabIndex)
Removes the Tab by index. Method will remove the WebView for the specific tab, it will not remove the tab from the tab array, so all indexes will remain the same.You cannot delete the tab with useCurrentViewForTab flag.If you switch to previously removed tab, tab will be recreated.
Parameters
- tabIndex : INTEGER
The index for tab (index numbered from 0) to delete.
- 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.NativeTabbar.removeTab(INTEGER tabIndex)
switchTab(INTEGER tabIndex)
Switch active tab.
Parameters
- tabIndex : INTEGER
The index for this tab (index numbered from 0).
- 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.NativeTabbar.switchTab(INTEGER tabIndex)
Remarks
Device Limitations With Multiple Tabs
Please consider the limitations of the device when creating multiple tabs with the Native TabBar. The number of tabs that can be created will depend on the resources of the device and the complexities of the pages displayed in those tabs but, as a general rule, a maximum of 10 tabs on an MC75a should be enforced. Also consider setting the createOnInit
property to false so that not all tabs are initialized when the TabBar is first created and using the in-process engine for a more responsive experience.