WebView

Enterprise Browser 3.7

Overview

This is the core container used for rendering application code. Certain behaviors of the WebView can be controlled by using this API class.

Note: On CE devices that use the IE Engine, clicking a hyperlink while holding the (hardware) shift key on the device yields unpredictable results.

Enabling the API

There are two methods of enabling the WebView API:

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

Either way, the included files will be from: /Enterprise Browser/JavaScript Files/Enterprise Browser, a directory on the computer that contains the Enterprise Browser installation.

Include all JS API modules

To include all JavaScript APIs, copy the ebapi-modules.js file to a location accessible by the app's files and include the JavaScript modules file in the app. For instance, to include the modules file in the app's index.html, copy the modules file to the same directory as the index.html and add the following line to the HEAD section of the app's index.html file:


<script type="text/javascript" charset="utf-8" src="ebapi-modules.js"></script>

This will define the EB class within the page. Note that the path for this file is relative to the current page (index.html). Any page on which the modules are required will need to have the required .js file(s) included in this fashion.

Include only the required modules

To include individual APIs, include the ebapi.js in the HTML, and then the additional required API file(s). For instance, to use the WebView API, add the following code to the HTML file(s). Again, this assumes that relevant 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.webview.js"></script>

In the code lines above, notice that ebapi.js is included first, followed by eb.webview.js, which is the WebView API for Enterprise Browser. This coding is required on each HTML page whenever an individual API will be called from that page.


Methods

getConfigurationChangeNotification()

Used for reading the displayID of the currently attached secondary display, as well as its screen height, width and density values. Optional callback for changes to displayID or monitor orientation.

Parameters

  • callback : CallBackHandler (optional)

Returns

Synchronous Return:

  • Void

Platforms

  • Android

Method Access:

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

captureWebPageScreen()

Used to capture the current application page and save it to a directory on the device.

Parameters

  • Void

Returns

  • Void

Platforms

  • Android

Method Access:

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

clearApplicationCache()

Used for clearing HTML5 Application Cache data in Enterprise Browser application. Note: Use WebView clearCache API for clearing cache data.

Parameters

  • callback : CallBackHandler

Returns

Synchronous Return:

  • Void

Platforms

  • Android

Method Access:

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

clearCache()

Forces WebView to clear cache data in Enterprise Browser application. Note: This doesnot clear HTML5 Application Cache data.

Parameters

  • callback : CallBackHandler

Returns

Synchronous Return:

  • Void

Platforms

  • Android

Method Access:

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

clearCookies()

Forces WebView to clear cookies saved in Enterprise Browser application.

Parameters

  • callback : CallBackHandler

Returns

Synchronous Return:

  • Void

Platforms

  • Android

Method Access:

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

clearHistory()

Forces WebView to clear history in Enterprise Browser application.

Parameters

  • callback : CallBackHandler

Returns

Synchronous Return:

  • Void

Platforms

  • Android

Method Access:

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

Force WebView to navigate to a URL. White page flickering during transition may happen if a controller action method doesn't return any rendered value, but instead performs a WebView.navigate(someUrl) call.

Parameters

  • url : STRING

    Navigate to this url.

  • tabIndex : INTEGER Optional Default: -1

    TabBar tab index. If no tab bar present, index is ignored. Please avoid of navigate in not opened tab - this is unsupported on Android. Refresh active WebView.

  • 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.WebView.navigate(STRING url, INTEGER tabIndex)

Force WebView to navigate to the previous page using Browser back.

Parameters

  • tabIndex : INTEGER Optional Default: -1

    TabBar tab index. If no tab bar present, index is ignored. Navigate back in active WebView.

  • 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.WebView.navigateBack(INTEGER tabIndex)

refresh(INTEGER tabIndex)

Force WebView to refresh the current page.

Parameters

  • tabIndex : INTEGER Optional Default: -1

    TabBar tab index. If no tab bar present, index is ignored. Refresh active WebView.

  • 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.WebView.refresh(INTEGER tabIndex)

resizeWebviewLayout(INTEGER left, INTEGER top, INTEGER width, INTEGER height)

Resize the WebView layout parameters with the specified left, top, width and height values in Enterprise Browser application.

Parameters

  • left : INTEGER

    Specifies the initial horizontal position of the webView layout in pixels.

  • top : INTEGER

    Specifies the initial vertical position of the webView layout in pixels.

  • width : INTEGER

    Specifies the width of the webView layout in pixels. The maximum value should not be greater than device Width.

  • height : INTEGER

    Specifies the height of the webView layout in pixels. The maximum value should not be greater than device Height.

  • callback : CallBackHandler

Returns

Synchronous Return:

  • Void

Platforms

  • Android

Method Access:

  • Class Method: This method can only be accessed via the API class object.
    • EB.WebView.resizeWebviewLayout(INTEGER left, INTEGER top, INTEGER width, INTEGER height)

resetWebviewLayout()

Reset the WebView layout to default in Enterprise Browser application.

Parameters

  • callback : CallBackHandler

Returns

Synchronous Return:

  • Void

Platforms

  • Android

Method Access:

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

save(STRING format, STRING path, INTEGER tabIndex)

Save current page to file system.

Parameters

  • format : STRING

    Format of the saved page.

    Possible Values :

    Constant: EB.WebView.SAVE_FORMAT_JPEG
    String:jpeg
    Save as jpeg image.
  • path : STRING

    Path to the file / folder to save the page.

  • tabIndex : INTEGER Optional Default: -1

    TabBar tab index. If no tab bar present, index is ignored. If tabbar index omitted then active WebView will be saved.

  • callback : CallBackHandler

Returns

Synchronous Return:

  • Void

Platforms

  • Android

Method Access:

  • Class Method: This method can only be accessed via the API class object.
    • EB.WebView.save(STRING format, STRING path, INTEGER tabIndex)

Properties

setUserAgent

Type

STRING

Description

Used to modify the default user agent of the current WebView instance.

Access

  • Class: This property can only be accessed via the API class object.
    • EB.WebView.setUserAgent

Platforms

  • Android

useWideViewPort

Type

BOOLEAN

Description

Used to control whether the WebView supports the viewport HTML meta tag or a wide viewport. When false, layout width is always set to the width of the WebView control in device-independent (CSS) pixels. When true and the page contains the viewport meta tag, the value of the width specified in the tag is used. If the page does not contain the tag or does not specify a width, wide viewport id used. Overrides any value set using the UseWideViewPort parameter of the UseWideViewport config tag.

Access

  • Class: This property can only be accessed via the API class object.
    • EB.WebView.useWideViewPort

Platforms

  • Android KitKat and higher

loadWithOverviewMode

Type

BOOLEAN

Description

Used to control whether the WebView loads pages in "zoomed out" (Overview) mode, which allows the width of content to fit on screen. This mode is generally used when content width is greater than the width of the WebView control.

Access

  • Class: This property is accessed only through the API class object.
    • EB.WebView.loadWithOverviewMode

Platforms

  • Android 5.x Lollipop and higher
Notes
  • Takes affect only if UseWideViewPort parameter of the ViewPort config tag or useWideViewPort API property is set to true.

activeTab

Type

INTEGER Read Only

Description

Return an active tab index. For change active tab use Use EB.NativeTabbar.currentTab property.

Access

  • Class: This property can only be accessed via the API class object.
    • EB.WebView.activeTab

Platforms

  • Android
  • Windows Mobile
  • Windows CE

blockNetworkImage

Type

BOOLEAN

Description

Controls whether the WebView loads image resources from the network. Note that disabling all network loads using blockNetworkLoads property or via BlockNetworkLoads config tag also will prevent network images from loading, even if this flag is set to false. When the value of this setting is changed from true to false, network images resources referenced by content currently displayed by the WebView are fetched automatically. Note: This property overrides the value set using BlockNetworkImage configuration tag.

Access

  • Class: This property can only be accessed via the API class object.
    • EB.WebView.blockNetworkImage

Platforms

  • Android

blockNetworkLoads

Type

BOOLEAN

Description

Controls whether the WebView loads resources from the network. Use blockNetworkImage property or BlockNetworkImage config tag to only avoid loading image resources. If the value of this setting is changed from true to false, network resources referenced by content currently displayed by the WebView are not fetched until reloading of page is not done. Note: This property overrides the value which was set using BlockNetworkLoads configuration tag.

Access

  • Class: This property can only be accessed via the API class object.
    • EB.WebView.blockNetworkLoads

Platforms

  • Android

cacheSize

Type

INTEGER Read Only

Description

The browser cache size, in whole MBs. Defined in the Navigation\Cache parameter of the config.xml file.

Access

  • Class: This property can only be accessed via the API class object.
    • EB.WebView.cacheSize

Platforms

  • Windows Mobile (WebKit)

contentHeight

Type

INTEGER Read Only

Description

Gets the height of the HTML content.

Access

  • Class: This property can only be accessed via the API class object.
    • EB.WebView.contentHeight

Platforms

  • Android

enableZoom

Type

BOOLEAN

Description

Enables WebView to “pinch zoom” in and out of an image or web page using the two-finger gesture. Supported on EB 3.0.6.0 and later. Also can be configured using the 'EnableZoom' parameter in the config.xml file.

Access

  • Class: This property is accessed via the API class object:
    • EB.WebView.enableZoom=true;
    • EB.WebView.enableZoom=false;

Params

Default: true

Disable: false

Platforms

  • Android

fontFamily

Type

STRING Read Only

Description

Specifies the default font to use when rendering text in web pages. The specified font should be a TrueType font present on the device. On Windows, the default font has been set to 'Tahoma' as this is present on all Zebra devices running Windows Mobile/CE. Note that Tahoma has no italic or oblique variants. On the Enterprise Tablet, the default is Droid Sans Fallback. The font specified must be stored in \Windows for Windows Mobile/CE devices or /system/fonts folder for Enterprise Tablet. Defined in the HTMLStyles\FontFamily parameter of the config.xml file.

Access

  • Class: This property can be accessed only via the API class object.
    • EB.WebView.fontFamily

Platforms

  • Windows Mobile (WebKit)

framework

Type

STRING Read Only

Description

Same as System.webViewFramework.

Access

  • Class: This property can only be accessed via the API class object.
    • EB.WebView.framework

Platforms

  • Android
  • Windows Mobile
  • Windows CE

fullScreen

Type

BOOLEAN

Description

Use full screen mode.

Params

Default: false

Access

  • Class: This property can only be accessed via the API class object.
    • EB.WebView.fullScreen

Platforms

  • Android
  • Windows Mobile
  • Windows CE

Type

INTEGER

Description

Number of milliseconds (max. = 45000) before the browser times out and navigates to the page specified in the badlink setting. Can be defined using the Navigation\NavTimeout parameter of the config.xml file. If it is determined that the destination is unreachable regardless of wait time, the badlink may be loaded before NAVTIMEOUT. This is the time taken to establish communication with the server, not the time taken to fully load the page. Note that the navigation timeout will not be invoked when navigating to the start page. The best practice is to store the first page locally to avoid connectivity issues at start up, and then redirect to an online page if desired.

Params

Default: 45000

Access

  • Class: This property can only be accessed via the API class object.
    • EB.WebView.navigationTimeout

Platforms

  • Windows Mobile (WebKit)

scrollTechnique

Type

STRING Read Only

Description

Specifies the technique used to scroll about the page. Defined in the Scrolling\ScrollTechnique paramter of the config.xml file.

Params

Default: FingerScroll

Values

Possible Values (STRING):

  • Constant: EB.WebView.SCROLL_NONE - String: (None). No scrollbars will be displayed and the page will not respond to finger swipes.
  • Constant: EB.WebView.SCROLL_SCROLLBARS - String: "Scrollbars" When the size of the page is larger than the screen, scrollbars will be presented for scrolling the page.
  • Constant: EB.WebView.SCROLL_FINGER - String: "FingerScroll" Scrolling is possible using finger swiping.

Access

  • Class: This property can only be accessed via the API class object.
    • EB.WebView.scrollTechnique

Platforms

  • Windows Mobile (WebKit)

textZoomLevel

Type

INTEGER

Description

Sets the font size to be displayed on the page, set to 0 for the smallest font and 4 for the largest font.

Access

  • Class: This property can only be accessed via the API class object.
    • EB.WebView.textZoomLevel

Platforms

  • Android
  • Windows Mobile (WebKit)

userAgent

Type

STRING Read Only

Description

Defined in in the Navigation\UserAgent parameter of the config,.xml file. When visiting a web server, the WebKit browser reports itself as the specified user agent. Use the following substitution variables:

  • %p - platform name ("Windows CE " + version number)
  • %w - WebKit version number
  • %e - WebKit version number

Use the UserAgent setting to spoof the device to the server (i.e. to view content designed for the desktop on a mobile screen).

From RhoElements 2.1 onward, the default value was changed to work out of the box with a greater number of server configurations. Prior to RhoElements 2.1, the default user agent was "Mozilla/5.0 (%p) AppleWebKit/%w (KHTML, like Gecko) WebKit/%e Safari/%w"

Access

  • Class: This property can only be accessed via the API class object.
    • EB.WebView.userAgent

Platforms

  • Windows Mobile (WebKit)

viewportEnabled

Type

BOOLEAN Read Only

Description

Get whether viewport meta tag processing is enabled or disabled in the Navigation\ViewportEnabled parameter of the config.xml file.

Params

Default: true

Access

  • Class: This property can only be accessed via the API class object.
    • EB.WebView.viewportEnabled

Platforms

  • Windows Mobile (WebKit)

viewportWidth

Type

INTEGER Read Only

Description

Default viewport width to use for pages that do not have a viewport meta tag (uses 1:1 scaling if not specified). Defined in the Navigation\ViewportWidth parameter of the config.xml file.

Access

  • Class: This property can only be accessed via the API class object.
    • EB.WebView.viewportWidth

Platforms

  • Windows Mobile (WebKit)

zoomPage

Type

FLOAT

Description

Sets the zoom factor of the page. Factor 1.0 is no zoom, values less than 1.0 are zoomed out and values greater than 1.0 are zoomed in.It is recommended to not to use the zoom value less than 1.0 because the page doesn't look in readable format.In Android new Zoom value takes effect on current page, Previous page has to be revisited for the new zoom values to take effect

Access

  • Class: This property can only be accessed via the API class object.
    • EB.WebView.zoomPage

Platforms

  • Android
  • Windows Mobile (WebKit)