Windows Phone's support of all PhoneGap features, a first for any mobile platform that is not iOS or Android.PhoneGap is turning 1.3 today. There are a plethora of new features, tools and controls across five platforms in the new PhoneGap release. Biggest among these is
PhoneGap, which technically changed its name to Apache Callback for legal reasons, will now actually be called Apache Cordova when it releases version 1.4. It does not really matter what PhoneGap calls itself, the functionality continues to improve with each successive iteration. A full suite for Windows Phone should be a big boon to the platform as it reaches out for more developers.
PhoneGap + Windows Phone
The most robust of the changes in PhoneGap 1.3 are dedicated to Windows Phone. One of PhoneGap's core developers, Jesse MacFadyen, led the Windows Phone development team and published a blog post on the integration.
Windows Phone requires the use of Visual Studio and C#. The templates of Visual Studio make it easier to set up an app which keeps the whole project pretty simple. Fundamentally, PhoneGap is working through the browser so it is important that Internet Explorer 9 be robust and have decent HTML5 implementations through Mango. HTML5 development company Sencha benchmarked Internet Explorer 10 and found that it was robust in terms of HTML5 implementation. IE 9 is not all that far behind and is what is currently available in the Mango environment.
The Windows Phone source code is available here on GitHub.
"On Windows Phone, PhoneGap is incredibly flexible. The API is implemented inside a user-control. This means that you can easily add a little PhoneGap to an existing WP7 app, or if you choose, you can add Silverlight controls to your PhoneGap app," MacFadyen wrote.
Major Improvements Across Platforms
The biggest improvements may have been for Windows Phone but there were important additions to all the major platforms. For instance, PhoneGap is now supported for BlackBerry development on OS X so developers can code from their Macs.
Here are the major improvements for each mobile platform supported by PhoneGap:
- Remove addWhiteList from public API
- Remove PhoneGap.stringify, replace with JSON.stringify
- Fixed: Backbutton should go back in appview history before going back in our history stack
- Changed createCaptureFile to explicitly check for PNG and to throw an IllegalArgumentException if it is not a JPEG nor a PNG
- Refactored the backHistory() code so calling navigator.app.backHistory() has consistent behavior with the backbutton
- Changed API to postMessage() to call a plugin's onMessage() method
- Optimized enumerations
- Added OSX support
- Fixed a memory leak issue with WebWorks
- Updated PluginResult Exceptions to use latest naming scheme
- Added download method to filetransfer, interface is the same like on Android
- When playing audio from remote URL, stop as soon as download fails and make loading cacheable
- Fixed warning - implicit conversion of UIInterfaceOrientation to UIDeviceOrientation (which are equivalent, for the two Portraits and two Landscape orientations)
- Added 'resign' and 'active' lifecycle events
- Added Full PhoneGap API support
- Bug-fixes for XMLHttpRequest calls to local file system, especially important for jQuery Mobile apps
- GapView is a usercontrol, so you can use it in your existing Windows Phone app, you don't have to start over to use PhoneGap
- Addressed issues with File API persistence + local storage
See the full change log from PhoneGap here.