Web Apps as Native Tools on Windows Mobile 6.5
Windows Mobile 6.5 allowed web applications to run as standalone, native-wrapped tools primarily through its built-in W3C Widget runtime and custom native wrapper applications utilizing embedded web controls. By pairing the updated Internet Explorer Mobile 6 rendering engine with native shell environments, developers could package standard HTML, CSS, and JavaScript assets so they launched from the Start menu and operated like standard native Windows Mobile programs.
The W3C Widget Runtime
Windows Mobile 6.5 introduced native platform support for the W3C packaging format, known as Windows Mobile Widgets. These widgets served as the platform’s official, out-of-the-box framework for native-style web execution:
- Packaging: Developers bundled web assets—HTML, CSS,
JavaScript files, and images—into a single
.ziparchive, which was then renamed with a.wgtfile extension. - Configuration: A mandatory
config.xmlfile sat in the root directory, defining the application's metadata, display name, entry-point HTML document, icon, and security capabilities. - Execution: When launched from the Start menu, the operating system's internal widget host executed the code in a chromeless environment. This stripped away traditional browser chrome (the address bar, navigation buttons, and status icons), rendering the application full-screen.
Embedded WebBrowser Host Controls
Before widgets and alongside them, developers created standalone tools using compiled C++ (Win32) or C# (.NET Compact Framework) containers that hosted an embedded browser view:
- The WebBrowser Control: Developers placed an
instance of the
WebBrowsercontrol (IWebBrowser2in C++ orSystem.Windows.Forms.WebBrowserin .NET Compact Framework) across the entire application form. - Local Resource Loading: Instead of pointing to an
external web server, the native host loaded pages locally from the
device's storage (
file://\Program Files\AppName\index.html) or extracted them dynamically from compiled application resources. - Chromeless Presentation: The native window eliminated all native controls, menus, and soft-key bars unless specifically configured to emulate mobile navigation, resulting in a clean application canvas.
The Rendering Engine: Internet Explorer Mobile 6
The core engine driving these wrapped applications was based on the desktop Trident/MSHTML engine from Internet Explorer 6, adapted for mobile in the Windows Mobile 6.5 release:
- Modernized Standards Support: It included an
upgraded JScript engine, DOM Level 2 support, and basic AJAX capability
(
XMLHttpRequest), allowing offline client-side logic to communicate with remote web services without reloading pages. - Viewport Handling: The engine adapted desktop layout concepts to small resistive screens, allowing developers to set fixed viewports suited to typical Windows Mobile screen resolutions (QVGA, VGA, WVGA).
Native API Bridging
Pure web environments lacked access to the Windows CE hardware layer, requiring a bridge between JavaScript and native capabilities:
window.externalInteroperability: In custom-wrapped C# or C++ shells, developers used thewindow.externalobject to expose native functions directly to the JavaScript context.- ActiveX Controls: Developers could write custom C++
COM/ActiveX controls, register them with the system, and instantiate
them within JavaScript via
new ActiveXObject(...). This provided access to hardware components like GPS, local file systems, device power states, SMS capabilities, and the notification manager.
Deployment and Installation
To match the native application lifecycle, wrapped web applications
were packaged into standard Windows Mobile installation packages
(.CAB files). The installer placed files into the device's
file system, registered file associations, and created a shortcut
(.lnk) in the Windows Start Menu, making the web
application indistinguishable from a compiled C++ or .NET CF executable
to the end user.