Remote data persistence using cookies
In early May we started with a series of brief and simple, yet useful articles to help you take better advantage of the existing possibilities that Thinfinity® VirtualUI™ provides.
In the present note, you will learn how to take advantage of the web browser’s cookies to add remote data persistence. We will see a way to store remote data in the browser to be later retrieved from the application when needed.
Remembering login parameters, and saving the last position on a map or a form’s data are typical cases of such a scenario.
Working with Remote data persistence
One possible way to address this need would keep that information somewhere in the disk from where the application can recover it promptly. This would seem to be the most natural way of achieving that goal. But what would happen when we run the application remotely from the browser, greatly opening the range of users? In these cases, saving the information in the application does not seem to be the best way to do it; the most reasonable way, however, seems to be storing that information “near the user”; i.e, in the browser.
One of the most effective and classical methods of sharing information between the browser and any remote application is by using cookies. Cookies are small pieces of information that the application can store in each browser and later recover in a clear way. In our particular case, we can create and enquire the value of a cookie directly from the application through the SetCookie and GetCookie methods of Thinfinity.BrowserInfo.
The SetCookie method has the following format:
VirtualUI.BrowserInfo.SetCookie(name, value, expirationDate);
|name||string||Name of the cookie. With this name it is stored, properly identified, in the browser.|
|value||string||Value of the cookie|
|expirationDate||string||Stored in UTC/GMT format, indicating the expiration date of the cookie. If its value is “”, the cookie does not expire.|
This example written in Delphi shows how store a data value (in this case the value of the username field) into a cookie:
procedure TForm1.Button1Click(Sender: TObject); begin if Trim(edtUsername.Text) = '' then begin ShowMessage('The username field must have a value'); end else begin // saving the cookie when running with Thinfinity VirtualUI only. if VirtualUI.Active then begin VirtualUI.BrowserInfo.SetCookie('CookiesDemo_Username', edtUsername.Text, ''); ShowMessage('Username was saved as a cookie in your browser.'); end; end; end;
The GetCookie method has a single argument:
|name||string||Name of the cookie. With this name the cookie will be retrieved from the browser. If the cookie doesn’t exist, an empty string will be received.|
And the example written in Delphi is:
procedure TForm1.FormShow(Sender: TObject); begin if VirtualUI.Active then edtUserName.Text := VirtualUI.BrowserInfo.GetCookie('CookiesDemo_Username'); end;
Just like in the case of SetCookie, in the present case, we also make sure that VirtualUI is active (i.e., that this instance of the application runs remotely, using VirtualUI).
Thus, with very few code lines, we can integrate a little further the browser with our application, and add minor enhancements that help improve the user experience.
As you already know, Thinfinity VirtualUI is a web-enabling SDK to run apps on a browser without rewriting the code.
Explore our other remoting and web-enabling solutions, enjoy our free trials, or request a custom demo HERE. No commitment!
We will be happy to assist you and show you our portfolio for remote desktop, screen sharing, digital workspace, and application virtualization.