Web Browser Component
Component Palette Icon
Description
Web Browser
Watch the videoThe Web Browser component in Designer allows you to embed a full web browser inside of an Ignition Client. This component becomes available in Designer after you download the Web Browser module from the Inductive Automation's website. The Web Browser module installs the same way as any other modules. Once this component is added onto a window, it will behave just like any other web browser when it is inside a Client.
Client machines need to meet the following minimum requirements to use this component. The component may not work properly if the requirements are not met.
Operating System Requirements
Windows
- Microsoft Windows XP (SP2), 7, 8, Vista, Server 2003 (SP1), Server 2008/2012, 32-bit and 64-bit.
- Windows version 8 and 8.1 require Java 6 update 38 or greater
- Oracle (Sun) JRE 1.6.x and higher, 32-bit and 64-bit.
Linux
- Ubuntu 12.04+, Debian 7.7, RedHat Enterprise Linux 7, openSUSE 13.1, Fedora 20, 32-bit and 64-bit
- Oracle (Sun) JRE 1.6.x and higher, 32-bit and 64-bit.
Missing Libraries: 32-bit Ubuntu 12.04
Some 32-bit Linux distros are missing a needed library for running the Web Browser: libXss.so.1
Steps that fixed it in Ubuntu 12.04:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install ia32-libs-multiarch
Missing Libraries: Ubuntu 17.04
Ubuntu 17.04 is missing a library that is required for the component to run. Running the following command can resolve the issue:
sudo apt-get install libgconf-2-4
Mac OS X
- Mac OS X 10.7.x - 10.10.x (Intel)
- Apple or Oracle (Sun) JRE 1.6.x and higher, 32-bit and 64-bit.
Windows
- Microsoft Windows 7, 8, 8.1, 10, Server 2008 R2, Server 2012, Server 2016, 32-bit and 64-bit.
- Windows version 8 and 8.1 require Java 6 update 38 or greater
- Oracle (Sun) JRE 1.6.x and higher or IBM JRE 1.7.x and higher, 32-bit and 64-bit.
Linux
- Ubuntu 14.04+, 17.04 Desktop, Debian 8+, RedHat Enterprise Linux 7, openSUSE 13.3+, Fedora 24+, 64-bit only
- Oracle (Sun) JRE 1.6.x and higher or IBM JRE 1.7.x and higher, 32-bit and 64-bit.
Missing Libraries: Ubuntu 17.04 Ubuntu 17.04 is missing a library that is required for the component to run. Running the following command can resolve the issue:
sudo apt-get install libgconf-2-4
Mac OS X
- Mac OS X 10.9.x - 10.13.x (Intel)
- Apple or Oracle (Sun) JRE 1.6.x and higher, 32-bit and 64-bit.
The Web Browser Component will only support the following video codecs: Opus, Theora, Vorbis, VP8, VP9, and WAV.
The underlying browser component is available in scripting through the getBrowser() method. Documentation on the browser component is available at the JxBrowser Programmer’s Guide. The Inductive Automation support team is unable to provide detailed advice on scripting with this component. Furthermore, they are unable to provide troubleshooting beyond the basic functionality of the module.
Hardware Notes
ARM
Currently, the jxBrowser does not support the ARM architecture, thus the component will not work properly when used in conjunction with the ARM architecture.
Properties
Name | Description | Property Type | Scripting | Category |
---|---|---|---|---|
Border | The border surrounding this component. Note, that the border is unaffected by rotation. | Border | .border | Common |
Enabled | If disabled, a component cannot be used. New in 7.9.13 The "Enabled" property is no longer available for the Web Browser component when attempting to bind with another component. Binding through scripting and tags is still available. If there was a property binding setup before the upgrade, then that will still be active and function to a certain extent. More information can be found at JxBrowser Support. | boolean | .componentEnabled | Common |
FTP Proxy Port | FTP Proxy Port sets the proxy port for FTP connections. This setting is only used when Use Proxies is checked. | int | .ftpProxyPort | Data |
FTP Proxy Server | FTP Proxy Server sets the proxy server for FTP connections. This setting is only used when Use Proxies is checked. Can be empty | String | .ftpProxyServer | Data |
HTTP Proxy Port | HTTP Proxy Port sets the proxy port for HTTP connections. This setting is only used when Use Proxies is checked. | int | .httpProxyPort | Data |
HTTP Proxy Server | HTTP Proxy Server sets the proxy server for HTTP connections. This setting is only used when Use Proxies is checked. Can be empty | String | .httpProxyServer | Data |
HTTPS Proxy Port | HTTPS Proxy Port sets the proxy port for HTTPS connections. This setting is only used when Use Proxies is checked. | int | .httpsProxyPort | Data |
HTTPS Proxy Server | HTTPS Proxy Server sets the proxy server for HTTPS connections. This setting is only used when Use Proxies is checked. Can be empty | String | .httpsProxyServer | Data |
Mode | Data source for browser. Mode controls whether Starting URL or Starting HTML will be used. | int | .mode | Data |
Name | The name of this component. | String | .name | Common |
Popups Allowed | This flag is used to allow popups in the web page displayed. | boolean | .popupsAllowed | Behavior |
Proxy Exceptions | A comma delimited list of rules for websites that will bypass the proxy servers. An example sting would be "*foo.com,<local>,127.0.1" This setting is only used when Use Proxies is checked. | String | .proxyExceptions | Data |
Proxy Password | The password to use for proxy authentication. This setting is only used when Use Proxies and Use Proxy Authentication are checked. | String | .proxyPassword | Data |
Proxy Username | The username to use for proxy authentication. This setting is only used when Use Proxies and Use Proxy Authentication are checked. | String | .proxyUsername | Data |
Show Navigation Buttons | Show the navigation buttons at the top of the frame. | boolean | .showNavigation | Behavior |
Starting HTML | The initial HTML displayed when the Mode is set to HTML. Starting HTML is <html><body> </body></html> by default, which gives a blank page. | String | .startingHtml | Data |
Starting URL | The initial URL displayed when the Mode is set to URL. Starting URL is blank by default. | String | .startingUrl | Data |
Use Proxies | If checked, the Web Browser will try to use the proxy settings. | boolean | .useProxies | Data |
Use Proxy Authentication | If checked, the browser will use the username and password for proxy authentication. This setting is only used when Use Proxies is checked. | boolean | .useProxyAuthentication | Data |
Visible | If disabled, the component will be hidden. | boolean | .visible | Common |
Zoom Level | The zoom level the web page is displayed in. 0.0 is normal, positive numbers zoom in, negative numbers zoom out. | double | .zoomLevel | Behavior |
Scripting
Scripting Functions
.getBrowser()
Description
- This function will return the underlying browser object. See JxBrowser Programmer’s Guide for more information.
Parameters
- none
Return
- Object - The Browser Object
Scope
- Client
Extension Functions
initialize
Description
- Called when the Web Browser component is initialized. Provides a chance to initialize the browser further. Enabling or disabling this function will cause the Web Browser component to re-initialize.
Key Arguments
- Component self: A reference to the component that is invoking this function.
- JxBrowser browser: The underlying JxBrowser instance of the Browser class.
- BrowserView browserView: The underlying rendering class that contains the Browser instance.
Return
- Nothing
Scope
- Client
Event Handlers
propertyChange
Fires whenever a bindable property of the source component changes. This works for standard and custom (dynamic) properties.
Property | Description |
---|---|
.source | The component that fired this event. |
.newValue | The new value that this property changed to. |
.oldValue | The value that this property was before it changed. Note that not all components include an accurate oldValue in their events. |
.propertyName | The name of the property that changed. NOTE: remember to always filter out these events for the property that you are looking for! Components often have many properties that change. |
Customizers
Examples
# This code example can be used inside the initialize() extension function.
# It is designed to pass the Web Browser component's internal browser logging through to the Ignition gateway logs.
from com.teamdev.jxbrowser.chromium.events import ConsoleListener
class IgnitionListener(ConsoleListener):
def __init__(self, target='Web Browser'):
self.logger = system.util.getLogger(target)
self.levels = {'DEBUG': self.logger.debug, 'ERROR': self.logger.error, 'LOG': self.logger.info, 'WARNING': self.logger.warn}
def onMessage(self, event):
self.levels[str(event.getLevel())](event.getMessage())
browser.addConsoleListener(IgnitionListener())