Simple Kiosk Mode Application for Pocket PC - Part 1

Mike Hall recently wrote an excellent series of blog entries on creating a Kiosk system running on a Windows CE embedded platform. It's interesting reading, especially if you aren't entirely sure what Windows CE embedded platforms actually look like or do. You can find the first installment here.


However, over here in Windows Mobile based-devices land, where the Pocket PC and Smartphone rule, we also get questions about Kiosk applications. For example, many customers want to use existing Pocket PC devices and turn them into dedicated clients, rather than flexible PDAs that are jack of all trades. Imagine a museum tour for example, or some other form of electronic guidebook. Having start menus, office applications, and gasp! games would just confuse people - must better have one application with a consistent look and feel.


In one recent internal project, I was asked to create such an application that would display HTML and not do a lot else. The idea was to create a dedicated help display system, that was a little prettier than the standard Help system. (Yes, Pocket PCs still have Help files - although it seems that almost no-one knows they exist! Do YOU ever use them? Can you guess if Smartphones have similar help files?)


Unlike the standard Web Browser, the application would display pages of text and graphics, but allow the user to navigate using the hardware buttons. For example, pressing Right on the Pocket PC navigation pad would move to the next page, pressing Left would move back and so on.


This was an interesting project. How, for example, could I embed information that described the "next" and "previous" pages into the HTML files?


Here's a summary of the application requirements:


1. Run on a Pocket PC or a Smartphone,


2. Display HTML based content, full screen if necessary,


3. Allow the user to navigate between pages using the softkeys, menu buttons, and navigation control, and


4. Allow the HTML page designed to embed information in the HTML regarding which pages were "navigatable". 


My solution


When it comes to writing code, I'm lazy. If someone else has done something similar, I'll take full advantage. And so I quickly set up looking at the Browse sample that ships with the Pocket PC 2005 SDK. If you have that SDK installed, you can find it here: 

C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\Samples\CPP\Win32\Browse\browse.sln

 This is a great sample. It even makes use of GAPI* to allow the HTML control to take over the entire screen. (You want to write your tabbed browser? Start here!)


I was very pleased to see that in Windows Mobile 5.0, there is no need to worry about adding your own code for following links and displaying graphics. The last time I had written an HTML display application using the HTML control, I'd had to provide code that did both these, and the novelty was wearing thin.


Next blog entry: managing the hardware button based navigation, and more!


p.s. If you are interested in discusions of Kiosk Mode on Pocket PCs, also see Marcus Perryman's excellent article.


(* Alas poor GAPI, I knew him well. There's another blog entry due on that! :-) )