Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

NGClient is a browser-based application of which the UI is rendered in the browser using pure HTML, CSS and a bit of JavaScript for event handling and communication with the Servoy Application Server (HTML5, CSS3 and websockets communication is used). The  business logic of the Solution that is running in the NGClient is executed on the Application Server for security reasons: the code of the business logic is not exposed in the webpage markup.

Stoc

 


War deployment

War deployment is the only option for an NGClient, because a lot more resources are needed then just the solution.

...

Most of the browser supporting WebSocket also support HTML5 and CSS3. To see a full list of browser supporting the WebSocket see WebSocket support.


Browser Sessions

An NGClient is bound to a Tab in the browser; the session will not be shared over multiple tabs as it happens with the WebClient. It does use the http session on the server for better security and also support for load balancing servers.  But there can be multiple NGClients for 1 http session.

By default browser sessions will not timeout while the brower tab is open, no matter what the value of the the container's/tomcat's session timeout is. This is because NGClient uses a WebSocket that is a persistent connection between server and client.  If you need to automatically log-out idle clients - that left their browser tab open, you can implement that based on plugins.clientmanager (see JSClientInformation.getLastAccessedTime() - NGClient only).

Starting Servoy NG Clients (giving arguments or using a deeplink)

Servoy NGClients run in a browser and can be started by accessing a URL on the Servoy Application Server, which are plain start urls with the solution name in it (with or without arguments for the onsolution open) or direct deeplinks for calling directly a method with arguments

NG Client Start URL

What is does

{serverURL}/servoy-ngclientOpens a page that lists all available ng-client solutions. It is available only if solution browsing is enabled; see Solution browsing.

{serverURL}/solutions/{mySolutionName}/index.html

Opens the specified solution

{serverURL}/solutions/{mySolutionName}/index.html?a={value}

Opens the specified solution. The argument value is passed into the Solutions onOpen event handler.

{serverURL}/solutions/{mySolutionName}/index.html?a={value}&{name1}={value1}&{name2}={value2}

The same as the previous scenario, but with additional custom keys for additional arguments

{serverURL}/solutions/{mySolutionName}/index.html?m={myMethodName}

Opens the specified solution and executed the specified method after the solution is opened

{serverURL}/solutions/{mySolutionName}/index.html?m={myMethodName}&a={value}

The same as the previous scenario, but specifying a single value to be passed as an argument into the onOpen event handler and deeplink method

Info

Please note that if the solution is not loaded, the onSolutionOpen method is called before the deeplink method and only the deeplink method gets the arguments.


{serverURL}/solutions/{mySolutionName}/index.html?m={myMethodName}&{name1}={value1}&{name2}={value2}

The same as the previous scenario, but with custom keys for additional arguments

...


Note
titleParameters encoding

In order to make sure UTF-8 encoding is used for url parameters, you must look for value of URIEncoding setting from Tomcat connector. Beware that if useBodyEncodingForURI setting is used as well, it will have higher priority for used encoding. See Tomcat documentation for more details.

Starting with Servoy version 8.3, if 'index.html' is missing from the URL, it will be automatically appended and a redirect to the new URL will take place. Ex.  {serverURL}/solutions/{mySolutionName}  will redirect to {serverURL}/solutions/{mySolutionName}/index.html and {serverURL}/solutions/{mySolutionName}?a={value} will redirect to {serverURL}/solutions/{mySolutionName}/index.html?a={value}