Apache Cordova app harness

Clone this repo:


  1. 3a496a0 Fix up mistakes from cherry-picks by Andrew Grieve · 2 years, 6 months ago master
  2. f5676e8 Use npm-named plugins rather than CPR plugins by Andrew Grieve · 2 years, 6 months ago
  3. e724e18 Fix AppHarnessUI.java to work with latest cordova-android changes & to forward lifecycle events (minus onActivityResult) by Andrew Grieve · 2 years, 6 months ago
  4. 55066a3 Tweak harness-push/README.md to say port forwarding no longer required by Andrew Grieve · 2 years, 7 months ago
  5. c183c95 Hook up the whitelist plugin for loaded apps by Andrew Grieve · 2 years, 7 months ago


An App that can run Cordova apps within it.

Primary Goals:

  • Super-fast edit & refresh workflow
    • E.g. have a grunt watch that pushes every time a file changes
    • E.g. have livereload-type functionality for CSS & images
  • Test on devices without needing platform SDKs
    • E.g. develop for iOS on a Windows machine
    • Non-goal: Release to iOS from Windows

How to use it:

  1. Run the app on a device or simulator
  2. Push your app to it via the harness-push tool
  3. Use two-finger double-tap to bring up in-app menu.

Building the App Harness

Using a Unix environment, run:

./createproject.sh DirName
cd DirName
cordova plugin add PLUGINS_THAT_YOU_WANT

Major Unimplemented Features

  • Applying app settings (DisallowOverscroll, etc)
  • Applying app splashscreen
  • Applying app's whitelist

Major Unimplemented In-App Menu Features

  • Inject a JSConsole script tag
  • Initiate a weinre session
  • Suggestions welcome! :)

Harness Server

A server runs within the app that enables remote control functionality.

Use harness-push/harness-push.js to send commands to the App Harness.