How To Make FloreantPOS available for Mobile [on Windows Server]

Posted on

How To Make FloreantPOS for Mobile
[On Windows Server]

Objective:  To access FloreantPOS on a tablet or smart phone without having to install any complex or proprietary software.

For this tutorial we assume you’re using Windows.

 

STEP 1: INSTALL FloreantPOS 

Installing FloreantPOS is only a matter of copying a folder and provide a Java Runtime Execution Machine.

  1. Download and install JDK 8 from http://www.oracle.com
  2. Download the latest FloreantPos archive from http://floreant.org/download/
  3. Extract floreantpos archive into C:/Java/FloreantPos/
  4. Try to launch FloreantPos using batch script C:/Java/FloreantPos/floreantpos.bat

STEP 2: SET UP FloreantPOS AS A WEB Application

The secret sauce is Webswing.  It’s an open source, HTML5-only (no non-web technologies) web server that serves Java swing apps directly to the web.

Since FloreantPOS is a Java app that uses Swing for its UI, there’s not much to it than that!

The goal:  Make FlorantPOS a “web app” that can be accessed via HTTP on any device!  That is, ANY phone, tablet, PC, or whatever– with a modern web-browser should be able to use this web app.

All they need is the URL and a username/password. These web apps versions are able to run together simultaneously with traditional FloreantPOS devices.  For lightweight/inexpensive touch devices, it just a lot easier to point a browser at a server rather than installing a full installation of FloreantPOS, which may not be possible.

Webswing is pretty great– it integrates printing, clipboard, administrator “mirroring”, SSL, etc.

To set up Webswing requires minimal computing skills.  No special programming is required.  Just basic installation and file-editing skills.

So, here’s what you need to do…

  1. Download a recent 2.4 build of Webswing, and unzip it to C:\Java\Webswing folder.
  2. Now lets run Webswing
    C:\Java\Webswing\webswing.bat
  3. Now from any computer on your local network, go to a web browser and visit http://localhost:8080 Hopefully you will be greeted with a login.  The default username is admin and password is pwd.  You should change this at some future point.Assuming you were able to log in, you can now follow the instructions on Webswing’s Quick Start Guide for how to add FloreantPOS as a web app.

    To help you with this, here are the relevant settings that were added to my webswing.config file after I added floreant.  You can use these values.

     {
     "name" : "FloreantPOS",
     "icon" : "C:/Java/FloreantPos/config/logo.png",
     "vmArgs" : "",
     "classPathEntries" : [ "C:/Java/FloreantPos/floreantpos.jar", "/C:/Java/FloreantPos/lib/*jar" ],
     "homeDir" : "C:/Java/FloreantPos/",
     "theme" : "Murrine",
     "maxClients" : 20,
     "antiAliasText" : true,
     "swingSessionTimeout" : 300,
     "authorization" : false,
     "isolatedFs" : false,
     "debug" : false,
     "authentication" : false,
     "directdraw" : false,
     "allowDelete" : true,
     "allowDownload" : true,
     "allowUpload" : true,
     "allowJsLink" : true,
     "mainClass" : "com.floreantpos.main.Main",
     "args" : ""
     } 
    
  4. When everything is properly set up, you should be able to log in via http://localhost:8080 and FloreantPOS will appear as an option which you can then run directly from the browser.
  5. Once you’ve got it all ready, you can customize the settings such as add SSL for secure browser connections, create a dedicated page to automatically start with FloreantPOS rather than go through the app menu.

STEP 3:  USE A DEDICATED ANDROID APP TO ACCESS FloreantPOS

While you can now simply access http://ipaddressofwindowsserver:8080 from a browser on your phone to access FloreantPOS, you will run into a few issues:

  • The URL bar at the top of the browser is kind of annoying and takes up valuable screen space.
  • The browser may or may not permit pinch-zooming and may not be scaled properly so that you get the full app on the screen.  You don’t want to have to slide your finger around everywhere to center the app or to find the area you want to touch.  That sucks.

Solution:  Implement a custom Android app to:

  1. Present a full-screen WebView and load it with the Floreant Web App.  Don’t include a URL bar, menu bar, or any other “bells and whistles”  Just start and immediately present it with the interface.
  2. Automatically scale it to “full screen” so that you get the whole page scaled to the dimensions of the tablet/phone.  Don’t allow scrolling or anything.

CAVEATS:

  • I have not tested to see how well this scales or performs under any kind of load.
  • The above does not use SSL or encryption of any kind across the network.  SSL is available in webswing however.  I just didn’t play with it yet.
  • This example uses default passwords.  You want to change those!