PhoneGap for Symbian: Qt | November 18th, 2009
During the initial stages of working on PhoneGap for Symbian using Web Runtime, some limitations were brought to light due to the fact that Nokia’s WRT is closed source: we are limited to the device functionality and platform support which Nokia has exposed. Nonetheless its a great technology and porting PhoneGap to WRT was a relatively quick win (taking in to account my having to re-learn javascript after 1 year of flailing abroad).
But over the last few weeks, while maintaining the latter, I’ve been researching/experimenting (don’t even want to go far as say developing, as very little has been implemented) with Qt for Symbian. The crew at Nokia just released the Qt 4.6 release candidate on Nov 17th, and it includes a port of Webkit to Qt (QtWebkit), along with support for the Symbian/S60 platform, which is just the combination phonegap needs.

note my amazing javascript console, firebug is crap
So anyways I’ve got a PhoneGap Symbian Qt build (piggybacking off of the webkit demos included with Qt) which can open a local resource in a webview, and expose Qt Objects (and thus device functinoality) to javascript (via webframe->addtojavascriptwindowobject). I’ve implemented the most important API first, rather than the easiest: vibration. Ok it was actually the easiest.
Anyways there’s other problems to tackle before implementation of more PhoneGap APIs:
- XHRs seem to be getting blocked. I’m thinking its blocking what it considers a cross-domain XHR: a local html file to a remote server. I believe the support of this depends on the Webkit implementation(?)
- I can’t remember what else.
So if this looks interesting, help out the mobile developer community. Contribute. Its open source. Check out my very basic Getting Started doc, and get the code from my PhoneGap repo on Github (Symbian Qt branch). The .sis installer file is in there as well, so you could also just put it on your device to see a PhoneGap app that vibrates and thats about it. Really useful. I think you might need to install Qt libraries to your phone since I haven’t packaged them in the app yet.