All the latest news and insights on PhoneGap

PhoneGap 2.1.0 Released

We have just released PhoneGap 2.1.0! Thanks to everyone who worked so hard to get this release out!

This release focuses on fixing existing bugs that arose after the last release.

PhoneGap iOS has been fully migrated to use Automatic Reference Counting (ARC). Checkout Shazron’s blog about changes in Cordova 2.1.0 for iOS and how to update plugins to work with ARC. PhoneGap also supports iOS 6 now.

View the 2.1.0 changes below in the change log:

##iOS## * [CB-45] Add support for full urls in white-list, extract hostname * [CB-274] iOS Cordova Template Project is not compilable with default Apple’s ARC compiler 3.0 * [CB-593] Click and touch events do not fire after using scroll CSS * [CB-675] Allow multiple versions of PhoneGap to be installed in Xcode (added bin/update_cordova_subproject script) * [CB-828] iOS stucks the UI from updating on heavy load & has memory leaks. * [CB-903] iOS 6 - add setting to set WebKitStoreWebDataForBackup for user defaults from Cordova.plist/config.xml * [CB-904] iOS 6 - turn off CDVLocalStorage core plugin when on iOS 6 * [CB-994] CDVLocalStorage core plugin does not fully backup when app setting “Application does not run in background” is YES * [CB-1000] Namespace issue of JSONKit and other external libraries * [CB-1091] Removed installer and related dependencies. Moved original post-install script into makefile under “install” target (which is default target). * [CB-1091] Added check for if xcode is running, and throw error if it is. * [CB-1105] Add JSONKit doc issue for iOS Plugin Upgrade Guide * [CB-1106] Deprecate old plugin signature * [CB-1122] Diagnostic tool for Cordova iOS Xcode projects * [CB-1124] “create” script (and possibly others) provided in bin directory do not escape arguments * [CB-1136] symlink to bin/create script fails * [CB-1137] emulate and log script failure when launched from external working directory * [CB-1138] Default logging level for file access should not log file contents. * [CB-1149] hello-world sample web app is missing lib folder, in a newly created app * [CB-1164] Fix warnings and analyzer issues reported with the newer LLVM in Xcode 4.4 * [CB-1166] Remove dependency on VERSION file * [CB-1173] Clean up default project template * [CB-1182] Fixing IOS6 screen orientation/rotation without breaking ios5.1 or xcode 4.4 build. iOS. * [CB-1186] Update, for new install method * [CB-1187] Move the Objective-C unit-tests out of CordovaLib.xcodeproj, into its own .xcodeproj * [CB-1188] Update Plugin Upgrade Guide for new iOS plugin signature (old one still supported, but deprecated) * [CB-1190] Crash when contacts are edited (mass edit) * [CB-1192] Update template to set GCC_THUMB_SUPPORT=NO in Build Settings * [CB-1204] CDVViewController-loaded view doesn’t respect applicationFrame * [CB-1209] CDVViewController.supportedOrientations not set in a timely fashion * [CB-1223] CORDOVALIB Xcode variable - allow this to be read in from xcodebuild cli * [CB-1237] CDVDebugWebView no longer works since the ARC changes. * [CB-1258] Add documentation for the new logic to toggle between different exec() techniques on * [CB-1296] Update .js with fix for broken bridge on 4.2 * [CB-1315] Setting the view controller’s view size in viewWillAppear, use rootViewController * [CB-1385] Fix executing legacy plugins when callbackId is null. * [CB-1380] Fix data URIlgith from being blocked * [CB-1384] Online .wav files cannot be played, but ones local to www can * [CB-1402] Media API - wrong JavaScript callback is called for onStatus (typo) * [GH-PR 34] Refactor chooseContact() to retrieve contact information instead of just a contactId. * [GH-PR 35] Enhances iOS FileTransfer’s support for upload headers * Change default wire format of exec handler (was iframe, now xhr) see [CB-593]. * Update all core plugins to new exec format (new plugin signature, old one deprecated per deprecation policy) * Split out CordovaLibApp and CordovaTests into a separate Xcode project. * Add a benchmark into CordovaLibApp for measuring exec() speed. * Added Echo plugin (for benchmarking) into CordovaLib * Support JS->Native messages via an XHR & URL Protocol see [CB-593] * Refactor peoplePickerNavigationControllerDidCancel, always return dictionnary with id kABRecordInvalidID. * Deployment target for CordovaLib was not updated to 4.2 (we changed it in the template, but not the lib) * Fixed null dereference in FileTransfer upload when URL is invalid.

##Android## * Updating JS with feeling - See CB-1420 * Tagging 2.1.0 * CB-1409: Clicking the menu button crashes Jellybean * CB-1293: Camera.getPicture crashes when selecting from a Picasa album on Android * Forgot to put back echo * Reverting to the previously known to work config.xml, we’ll introduce the new format in 2.2 * Merge conflict on the plugins * Adding support for data uri * Fixed the backbutton issues with the keyboard without causing issues with the menu button so far * CB-1304: Update PhoneGap References to Apache Cordova * CB-1335: Update www/ Application * CB-1303: Remove References to the Callback Project * Tagging 2.1.0rc2 * Fixing failing ‘should return MediaError for bad filename’ Media test case * CB-1358: Getting Force Close in incoming Cal while recording the Audio? * [#1301] Remove * [#1305] Remove guides/ directory * Fixing ‘ - should handle unknown host’ failing mobile-spec test case * Fix broken file upload in mobile-spec tests (CB-1290). * CB=1293: Camera.getPicture crashes when selecting from a Picasa album on Android * CB-1289: The menubutton event fires twice * Refactor to avoid adb warnings of VFY: on start-up. * Tagging 2.1.0rc1 * arg forgot dest file * Merge branch ‘master’ of * CB-1235 Fixing Android create script on Windows * Implement LOAD_URL exec bridge. * Fix JS timers being disabled on pause and never re-enabled. * Updating the .gitignore file * Greatly improve speed of fetching contacts. * Update to pull in exec changes. * Added Native-JS bridge mode that uses private WebView APIs. * Implement the online events based Native->JS bridge. * Implements the LOAD_URL Native->JS bridge mode * Fix API lint warnings in CordovaChromeClient and CordovaWebViewClient. * Refactor Native->JS messaging logic into its own class. * Merge branch ‘master’ of * CB-1267: Reuse Media object for recording * Make Eclipse recognize framework as a library project * CB-1264: Media.stop() puts media into an unplayable state * Fix for CB-1257 * Provide an addJavascriptInterface() exec object. * Add an Echo plugin for benchmarking purposes. * Fix FileTransfer running out of memory over HTTPS (CB-312). * Fix API Level linter errors in * Merge branch ‘master’ of * Forgot to add the Apache headers on * CB-930: DirectoryReader creates null error code for inaccessible directory * CB-1151: decodes the URL, resulting in a 404 error * Downgrade min sdk version of sample app * Modify min sdk version in AndroidManifest.xml * Add service methods to legacy ctx varialbe * CB-1196: No onSuccess callback after a complete play of the local mp3 file * Reapply: CB-1211: Media record uses a .mp3 extension when it is a .3gp file * reset of seekOnPrepared changed to properly reset only once playback has begun * CB-1217: Clicking back button does not dismiss navigator.notification.alert() dialog * Fix a NPE in GeoBroker when there is no previous location. * GeoBroker checks if location service avialable for device first. * CB-1212: When camera is started, and then cancelled with no photo, attempt to read exif data results in fatal error * CB-1211: Media record uses a .mp3 extension when it is a .3gp file * CB-1206: file uri not handled correctly by Media Player * Update to use latest Android SDK * Merge branch ‘master’ of * CB-578 - Adding a test of pause and resume to make sure that they’re being called. Need to elaborate on this * Prefer setFixedLengthStreamingMode over setChunkedStreamingMode in FileTransfer. * I forgot that Jellybean has some wacky changes on the onKeyUp and onKeyDown events, fixing CB-1181 * Moving the fix for # and ? to a new class to fix CB-995 * This was a red herring. There was an XML error on the example when compared with master * Commenting out this past code, turns out this breaks more things than it fixes: CB-1101 * CB-1101: Specifying Jellybean means that we have to override the default CORS policy * Adding functionality to read a config.xml file with plugin details implemented inside of it * Caught error with the back button again. backHistory actually goes back in history, used canGoBack() instead * fixing replace for mountain lion * Merge branch ‘master’ of * CB-1148 fix for directories with spaces * Adds FileTransfer support for upload headers. * Tweaking the Android Manfest to cope with new target changes: CB-1147 * Minor fix to deal with weird keyboard focus issues and the back button. CB-1146 * Throwing code over the fence for CB-1128, We need a Samsung Galaxy S running 2.3.5 to confirm this fix * Utility Methods based on Feedback * Updating sample project * Fixing leaking sockets

##BlackBerry## * Updating to 2.1.0 * [CB-1429] - updating www app * [CB-1414] - updating javascript * Forgot webworks reference * Updating version * Updating sample app * Synching javascript * No more references to phonegap in the readme * Remove reference to callback * Fixed up links in the readme * Updating readme * Fix for hello world app to work with 2.1.0rc1 out of the box * Updating hello world app * hack to support building alongside bb10 * get rid of bundled webworks.js * get rid of error warning * Updates for the new Webworks SDK * Synching javascript * 2.1.0rc1 * Synching javascript files * Fixed blackberry.xml so it doesn’t package the qnx stuff * made sample project work on bb10 with a custom config.xml and including webworks.js * added cordova.qnx.js from my branch of cordova.js * added some notes for BB10 Development * added initial building support for bb10 * Synching up javascript files * Spell BlackBerry with two capital B’s * Allow for spaces in directory paths * Fix file path issue * Using Mike’s hello world as the default sample app * trying to get mike’s sample app as new sample template * Synching up javascript files

##Windows Phone## * updated JS from new tag * removed built dll, source only in the repo now … * updated VERSION to 2.1.0 * updated cordova.js for 2.1.0 * Merge branch ‘master’ of * removed verbose console output, added default address type ‘home’, [CB-1374] escape new line char in returned contacts. * added param to retain callback script, renamed MediaStates, fixed deserialization error * bump version to 2.1.0 * timestamps were incorrect, leaving JS to create timestamps that are consistent with other platforms. * allow appending to files * update hello app html * update hello app, rejigger beep linkage * Startup Object not set when changes to namespace * removed warning, unused var * updated to latest hello app + latest cordova-js * Notification.confirm buttonLabels are not a real array, but a comma delim string. * MediaElement only supported one at a time, CB-941, CB-988 * Merge branch ‘master’ of * Merge pull request #19 from purplecabbage/Lib.vs.Proj * paths are resolved via BaseCommand which conditionally adds the DLL resource path if built into a library project * [#1313] Update PhoneGap references to Apache Cordova. * CORDOVA_CLASSLIB build time define to resolve resource linkage * updated readmes * Cleanup tests, added readmes * updated Device.cs for 2.1.0rc1 * remove old custom lib version, not supported lately * mass rename for 2.1.0rc1 * CB-1252 * adjusted contact deserialization for updated exec calls * Merge pull request #18 from purplecabbage/CB-629 * File tests passing * [CB-1174] * Merge pull request #17 from hermwong/5373b5ba334c7ad0aced8bc12637d0cb12ef480a * CB-805 getCurrentHeading returns success only once * [CB-1112] overridebackbutton

If you wish to follow or join in the development of this project, send an email to to subscribe to the developer mailing list. All bugs can be found on our issue tracker.