├── .gitignore ├── .markdownlintrc ├── .stylintrc ├── .travis.yml ├── Gemfile ├── LICENSE ├── NOTICE ├── README.md ├── Rakefile ├── assets ├── scripts │ └── main.js └── styles │ ├── index.css.stylus │ ├── normalize.css.styl │ └── zenburn-highlight.css.stylus ├── docpad.js ├── docs ├── 0-index.html.md ├── 1-getting-started │ ├── 0-index.html.md │ ├── 1-install-phonegap │ │ ├── 1-desktop.html.md │ │ └── 2-cli.html.md │ ├── 2-install-mobile-app.html.md │ ├── 3-create-your-app │ │ ├── 1-desktop.html.md │ │ └── 2-cli.html.md │ ├── 4-preview-your-app │ │ ├── 1-desktop.html.md │ │ └── 2-cli.html.md │ └── 5-going-further.html.md ├── 2-tutorials │ ├── 0-index.html.md │ └── 2-develop │ │ ├── 0-index.html.md │ │ ├── 1-embed-webview │ │ ├── 1-ios.html.md │ │ ├── 2-android.html.md │ │ └── 3-android-with-extension.html.md │ │ ├── 2-hello-world-explained.html.md │ │ ├── 3-single-page-architecture.html.md │ │ ├── 4-proper-scrolling-technique.html.md │ │ ├── 5-storage-options.html.md │ │ ├── 6-push-notifications.html.md │ │ ├── 7-writing-a-plugin │ │ ├── 1-ios.html.md │ │ ├── 2-android.html.md │ │ └── 3-windows.html.md │ │ ├── 8-accessibility.html.md │ │ └── 9-developing-with-wikitude.html.md ├── 3-references │ ├── 0-index.html.md │ ├── browser-support │ │ ├── 0-index.html.md │ │ ├── 2-plugin-support.html.md │ │ ├── 3-multi-device.html.md │ │ ├── 4-custom-plugins.html.md │ │ ├── 5-caution-next-steps.html.md │ │ └── usage │ │ │ ├── 1-desktop.html.md │ │ │ └── 2-cli.html.md │ ├── desktop-app │ │ ├── 0-index.html.md │ │ ├── 1-install │ │ │ ├── 1-mac.html.md │ │ │ └── 2-win.html.md │ │ ├── 10-troubleshoot-faq.html.md │ │ ├── 11-developer-console.html.md │ │ ├── 2-create-project.html.md │ │ ├── 3-open-project.html.md │ │ ├── 4-active-vs-inactive.html.md │ │ ├── 5-pair-with-dev-app.html.md │ │ ├── 6-remove-project.html.md │ │ ├── 7-update-version │ │ │ ├── 1-mac.html.md │ │ │ └── 2-win.html.md │ │ ├── 8-edit-settings.html.md │ │ └── 9-view-server-log.html.md │ ├── developer-app │ │ ├── 0-index.html.md │ │ ├── 1-install │ │ │ ├── 1-ios.html.md │ │ │ ├── 2-android.html.md │ │ │ └── 3-win.html.md │ │ ├── 2-previewing-app.html.md │ │ ├── 3-gestures.html.md │ │ ├── 4-update-version.html.md │ │ ├── 5-debugging.html.md │ │ ├── 6-custom-build │ │ │ ├── ios-custom-build.html.md │ │ │ └── win-custom-build.html.md │ │ └── 7-troubleshoot-faq.html.md │ ├── phonegap-cli │ │ ├── 0-index.html.md │ │ ├── 1-install.html.md │ │ ├── 2-create.html.md │ │ ├── 3-serve.html.md │ │ ├── 4-update.html.md │ │ ├── 5-push.html.md │ │ ├── 6-templates.html.md │ │ ├── 7-remote-usage.html.md │ │ ├── 8-cordova.html.md │ │ └── 9-help.html.md │ ├── plugin-apis.html.md │ └── plugin-apis │ │ ├── 0-index.html.md │ │ ├── battery-status.html.md │ │ ├── camera.html.md │ │ ├── console.html.md │ │ ├── contacts.html.md │ │ ├── device-motion-accelerometer.html.md │ │ ├── device-orientation.html.md │ │ ├── device.html.md │ │ ├── dialogs.html.md │ │ ├── file-sytem.html.md │ │ ├── file-transfer.html.md │ │ ├── geolocation.html.md │ │ ├── globalization.html.md │ │ ├── in-app-browser.html.md │ │ ├── media-capture.html.md │ │ ├── network-information.html.md │ │ ├── splashscreen.html.md │ │ ├── status-bar.html.md │ │ └── vibration.html.md ├── 4-phonegap-build │ ├── 0-index.html.md │ ├── 0-overview.html.md │ ├── 1-getting-started │ │ ├── 0-index.html.md │ │ └── app-project-structure.html.md │ ├── 2-configuring │ │ ├── 0-index.html.md │ │ ├── access-elements.html.md │ │ ├── config-file-element.html.md │ │ ├── icons-and-splash.html.md │ │ ├── plugins.html.md │ │ └── preferences.html.md │ ├── 3-signing │ │ ├── 1-overview.html.md │ │ ├── 2-ios.html.md │ │ ├── 3-android.html.md │ │ └── 4-windows.html.md │ ├── 4-tools │ │ ├── 0-index.html.md │ │ ├── 1-debugging.html.md │ │ ├── 2-hydration.html.md │ │ ├── 3-collaboration.html.md │ │ └── 4-weinre.html.md │ ├── 5-developer-api │ │ ├── 0-index.html.md │ │ ├── 1-oauth.html.md │ │ ├── 2-authentication.html.md │ │ ├── 3-read.html.md │ │ └── 4-write.html.md │ ├── 6-support │ │ ├── 0-index.html.md │ │ └── 1-failed-builds.html.md │ ├── 7-faq.html.md │ └── debugging.html └── 404.html.pug ├── drafts ├── 1-configure │ ├── 0-index.html.md │ ├── 1-icons │ │ ├── 1-ios.html.md │ │ ├── 2-android.html.md │ │ └── 3-win.html.md │ ├── 2-splash-screens.html.md │ ├── 3-config-xml-properties.html.md │ ├── 4-ios-status-bar-handling.html.md │ └── 5-using-hooks.html.md ├── 3-optimize │ ├── 0-index.html.md │ ├── 1-click-delay-handling.html.md │ ├── 2-hardware-acceleration.html.md │ ├── 3-minimize-reflows.html.md │ └── 4-image-handling.html.md ├── 4-debug │ ├── 0-index.html.md │ ├── 1-in-a-browser.html.md │ └── 2-remote-on-device.html.md └── 5-distribute │ ├── 0-index.html.md │ ├── 1-packaging-provisioning │ ├── 1-ios.html.md │ ├── 2-android.html.md │ └── 3-windows.html.md │ └── 2-app-store-submission │ ├── 1-ios.html.md │ ├── 2-android.html.md │ └── 3-windows.html.md ├── layouts ├── default.html.pug ├── includes │ ├── analytics.pug │ ├── phonegaplogo.svg │ ├── sidebar.pug │ ├── site-footer.pug │ ├── site-header.pug │ ├── subfooter.pug │ └── tabs.pug └── subpage.html.pug ├── package-lock.json ├── package.json ├── public ├── favicon.ico ├── images │ ├── about-dialog.png │ ├── ad-hoc.png │ ├── android-dev-options.png │ ├── android-webviews │ │ ├── req.png │ │ ├── step1.png │ │ ├── step2.png │ │ ├── step3.png │ │ ├── step4.png │ │ └── step5.png │ ├── app-file.png │ ├── app-store-icon.png │ ├── arrow-right.svg │ ├── bridge-header.png │ ├── browser-debug-chrome.png │ ├── browser-firefox-debug.png │ ├── browser-preview-push.png │ ├── browser-push-permission.png │ ├── browser-success-push.png │ ├── browser-support │ │ ├── browser-debug.png │ │ ├── browser-folder.png │ │ ├── caniuse.png │ │ ├── chrome-debug-deviceready.png │ │ ├── chrome-debug.png │ │ ├── custom-plugin.png │ │ ├── device-plugin.png │ │ ├── live-reload.png │ │ ├── multidevice.png │ │ ├── safari-devtools.png │ │ ├── safari-responsive.png │ │ ├── safari-responsive2.png │ │ └── serve-command.png │ ├── build-number.png │ ├── build │ │ ├── cli_project.png │ │ └── legacy_project.png │ ├── cell-title.jpg │ ├── chevron.svg │ ├── chrome-devtools.png │ ├── chrome-inspect.png │ ├── class-file-location.png │ ├── cocoa-touch-class.png │ ├── cordova-title.jpg │ ├── custom-build1.png │ ├── custom-build2.png │ ├── desktop-app-console-menu.png │ ├── desktop-app-create-info.png │ ├── desktop-app-create.png │ ├── desktop-app-dev-console.png │ ├── desktop-app-icon.jpg │ ├── desktop-app-open.png │ ├── desktop-app-plus-sm.png │ ├── desktop-app-plus.png │ ├── desktop-app-run.png │ ├── desktop-app-url-sm.png │ ├── desktop-app-url.png │ ├── dev-app-code-update.jpg │ ├── dev-app-enter-add.png │ ├── dev-app-home-android.png │ ├── dev-app-home-win.png │ ├── dev-app-icon.png │ ├── dev-app-ios-store.png │ ├── dev-app-play-store.png │ ├── dev-app-preview-push.jpg │ ├── dev-app-preview.jpg │ ├── dev-app-push-permission.jpg │ ├── dev-app-success-pus-locked.jpg │ ├── dev-app-success-push-bg.jpg │ ├── dev-app-success-push-locked.jpg │ ├── dev-app-success-push.jpg │ ├── dev-app-success.jpg │ ├── dev-app-wikitude.jpg │ ├── dev-app-win-phone.png │ ├── docs-active-project.png │ ├── docs-add-new.png │ ├── docs-create-dialog.png │ ├── docs-file-menu.png │ ├── docs-minus-button.png │ ├── docs-open-existing.png │ ├── docs-plus-button.png │ ├── docs-remove-notification.png │ ├── docs-server-log-button.png │ ├── docs-server-log-window.png │ ├── docs-server-status-online.png │ ├── docs-settings-button.png │ ├── docs-settings-dialog.png │ ├── drag-drop-location.png │ ├── drag-to-apps-folder.png │ ├── editor.jpg │ ├── embed-in.png │ ├── excited_robit.svg │ ├── four-finger-tap.png │ ├── gradle-ok.png │ ├── hello-android.png │ ├── help-button.png │ ├── hybrid-android-run.png │ ├── hybrid-apps.png │ ├── initial-view.jpg │ ├── ios-custom-build.gif │ ├── ios-template.png │ ├── ios-web-insp.png │ ├── items-change.jpg │ ├── layout-folder.png │ ├── layout-resource.png │ ├── license-agreement.png │ ├── main-interface.jpg │ ├── main-storyboard-name.jpg │ ├── main-view-controller.jpg │ ├── native-title.png │ ├── new-storyboard.jpg │ ├── node_js_allow_firewall.png │ ├── node_js_firewall_allowed_apps.png │ ├── opened-existing-project.png │ ├── phonegap-app-desktop-pair.png │ ├── phonegap-app-developer-workflow-v2.gif │ ├── phonegap-build │ │ ├── add_key.png │ │ ├── additional_info.png │ │ ├── alias_password.png │ │ ├── android_keystore_pass.png │ │ ├── edit_account_settings.png │ │ ├── ios_add_key.png │ │ ├── ios_unlock.png │ │ ├── keychain-export.png │ │ ├── keychain-password.png │ │ ├── keystore_ready.png │ │ ├── pgbuild_dbg_blink.png │ │ ├── pgbuild_dbg_elements.png │ │ ├── pgbuild_dbg_remote.png │ │ ├── pgbuild_dbg_select.png │ │ ├── pgbuild_dbg_toggle.png │ │ └── unlock_key.png │ ├── phonegap-developer-app-pairing.png │ ├── phonegaplogo.svg │ ├── plugin-structure.png │ ├── pods-workspace.png │ ├── res-folder.png │ ├── row-height.jpg │ ├── running-empty.png │ ├── running-final.png │ ├── running1.png │ ├── running2.png │ ├── safari-dev-menu.png │ ├── safari-develop.png │ ├── safari-web-insp.png │ ├── spa.png │ ├── step-install.png │ ├── step-pods.png │ ├── step-vc.png │ ├── step1.png │ ├── tabbar.png │ ├── tabbarcontroller.png │ ├── table-view-controller-class.png │ ├── table-view-controller-name.png │ ├── tableview.jpg │ ├── target.png │ ├── template-run.png │ ├── templates-list.png │ ├── three-finger-tap-gesture.png │ ├── three-finger-tap.png │ ├── title.jpg │ ├── troubleshoot.jpg │ ├── update-complete.png │ ├── update-dialog.png │ ├── usb-debug.png │ ├── view-controller.jpg │ ├── weinre-connected.png │ ├── weinre-demo-video.gif │ ├── weinre-demo.png │ ├── weinre-home.png │ ├── weinre-inspect.png │ ├── weinre-target.png │ ├── win-desktop-app.jpg │ ├── win-desktop-app.png │ ├── win-desktop1.png │ ├── win-desktop2.png │ ├── win-desktop3.png │ ├── win-desktop4.png │ ├── win-desktop5.png │ ├── win-desktop6.png │ ├── win-install.png │ ├── win1-open.png │ ├── xcode-archive-export.png │ ├── xcode-organizer-archives.png │ ├── xcode-organizer-export-method.png │ ├── xcode-organizer.png │ └── xcode-scheme.png └── systran28200f008d1bd672005bc81cb7c7c31f.html ├── spec ├── index.spec.js └── support │ └── jasmine.json └── vendor └── docpad-plugin-browsersync ├── LICENSE.md ├── README.md ├── out └── browsersync.plugin.js └── package.json /.gitignore: -------------------------------------------------------------------------------- 1 | # OS X 2 | .DS_Store 3 | 4 | # Node.js 5 | /node_modules 6 | npm-debug.log 7 | 8 | # Docpad 9 | /out 10 | 11 | .idea 12 | 13 | tmp 14 | Gemfile.lock 15 | -------------------------------------------------------------------------------- /.markdownlintrc: -------------------------------------------------------------------------------- 1 | { 2 | "frontMatter": true, 3 | "MD002": { 4 | "level": 2 5 | }, 6 | "MD006": false, 7 | "MD013": false, 8 | "MD014": false, 9 | "MD033": false, 10 | "MD024": false, 11 | "MD041": false, 12 | "MD023": false, 13 | "MD026": false, 14 | "MD031": false, 15 | "MD045": false 16 | } 17 | -------------------------------------------------------------------------------- /.stylintrc: -------------------------------------------------------------------------------- 1 | { 2 | "brackets": { 3 | "expect": "never", 4 | "error": true 5 | }, 6 | "colons": { 7 | "expect": "never", 8 | "error": true 9 | }, 10 | "efficient": "always", 11 | "namingConvention": "lowercase-hyphen" 12 | } 13 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - '8' 4 | before_script: 5 | - npm run build-prod 6 | - mv node_modules/.bin/which node_modules/.bin/which.backup 7 | - rvm install 2.2.3 8 | - bundle install 9 | - mv node_modules/.bin/which.backup node_modules/.bin/which 10 | script: 11 | - npm run lint 12 | - bundle exec rake test 13 | sudo: false 14 | env: 15 | global: 16 | - NOKOGIRI_USE_SYSTEM_LIBRARIES=true 17 | notifications: 18 | slack: 19 | secure: eCGQRSAKSVlEIZtAB1CBFGd71NutYdiCQfrTL2PcAbQjx7f5G+eyr3K9yQp3mxUSFIzCVZzlWeQet58kmKIF2+9CoQoqxfyq3cSDoC9IvueRDjPGcsbo80KGY5NYZlP0hJ3U/BqApux2H8iv79V3zyQDEjcuGniToAtZ+ue7rHQ= 20 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | # Test the build 4 | group :test, :development do 5 | gem 'rake' 6 | gem 'html-proofer' 7 | end 8 | -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- 1 | Apache Cordova 2 | Copyright 2012 The Apache Software Foundation 3 | 4 | This product includes software developed by 5 | The Apache Software Foundation (http://www.apache.org) 6 | -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- 1 | require 'html-proofer' 2 | 3 | # Set "rake watch" as default task 4 | task :default => :test 5 | 6 | desc "build and test website" 7 | task :test do 8 | HTMLProofer.check_directory("./out", { 9 | :empty_alt_ignore => true, 10 | :url_ignore => [ 11 | /http:\/\/192.168.1.20(:\d\d\d\d)?/, 12 | "https://plus.google.com/communities/111220599704908202107", 13 | "https://www.microsoft.com/en-us/store/p/phonegap-developer/9wzdncrdfsj0" 14 | ], 15 | :http_status_ignore => [0, 403, 999], 16 | :cache => { 17 | :timeframe => '1d' 18 | }, 19 | :timeout => 10, 20 | :typhoeus => { 21 | :followlocation => true, 22 | :ssl_verifypeer => false, 23 | :headers => { 'User-Agent' => 'html-proofer' } 24 | } 25 | }).run 26 | end 27 | -------------------------------------------------------------------------------- /assets/scripts/main.js: -------------------------------------------------------------------------------- 1 | function getBaseUrl(urlString) { 2 | return urlString.replace(/https?:\/\//i, '').split('/')[0]; 3 | } 4 | 5 | 6 | document.addEventListener('DOMContentLoaded', function (event) { 7 | var toggleButton = Sizzle('.mobile-docs-toggle')[0]; 8 | var sidebar = Sizzle('aside.sidebar')[0]; 9 | var body = Sizzle('body')[0]; 10 | 11 | toggleButton.addEventListener("click", function (e) { 12 | sidebar.classList.toggle('open'); 13 | body.classList.toggle('menu-open'); 14 | }); 15 | /*function resize() { 16 | if (window.innerWidth>=820 && sidebar.classList.contains('open')) 17 | sidebar.classList.toggle('open'); 18 | } 19 | window.addEventListener("resize", resize);*/ 20 | }); 21 | -------------------------------------------------------------------------------- /assets/styles/zenburn-highlight.css.stylus: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Zenburn style from voldmar.ru (c) Vladimir Epifanov 4 | based on dark.css by Ivan Sagalaev 5 | 6 | */ 7 | 8 | .hljs { 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | background: #3f3f3f; 13 | color: #dcdcdc; 14 | -webkit-text-size-adjust: none; 15 | } 16 | 17 | .hljs-keyword, 18 | .hljs-tag, 19 | .css .hljs-class, 20 | .css .hljs-id, 21 | .lisp .hljs-title, 22 | .nginx .hljs-title, 23 | .hljs-request, 24 | .hljs-status, 25 | .clojure .hljs-attribute { 26 | color: #e3ceab; 27 | } 28 | 29 | .django .hljs-template_tag, 30 | .django .hljs-variable, 31 | .django .hljs-filter .hljs-argument { 32 | color: #dcdcdc; 33 | } 34 | 35 | .hljs-number, 36 | .hljs-date { 37 | color: #8cd0d3; 38 | } 39 | 40 | .dos .hljs-envvar, 41 | .dos .hljs-stream, 42 | .hljs-variable, 43 | .apache .hljs-sqbracket, 44 | .hljs-name { 45 | color: #efdcbc; 46 | } 47 | 48 | .dos .hljs-flow, 49 | .diff .hljs-change, 50 | .python .exception, 51 | .python .hljs-built_in, 52 | .hljs-literal, 53 | .tex .hljs-special { 54 | color: #efefaf; 55 | } 56 | 57 | .diff .hljs-chunk, 58 | .hljs-subst { 59 | color: #8f8f8f; 60 | } 61 | 62 | .dos .hljs-keyword, 63 | .hljs-decorator, 64 | .hljs-title, 65 | .hljs-type, 66 | .diff .hljs-header, 67 | .ruby .hljs-class .hljs-parent, 68 | .apache .hljs-tag, 69 | .nginx .hljs-built_in, 70 | .tex .hljs-command, 71 | .hljs-prompt { 72 | color: #efef8f; 73 | } 74 | 75 | .dos .hljs-winutils, 76 | .ruby .hljs-symbol, 77 | .ruby .hljs-symbol .hljs-string, 78 | .ruby .hljs-string { 79 | color: #dca3a3; 80 | } 81 | 82 | .diff .hljs-deletion, 83 | .hljs-string, 84 | .hljs-tag .hljs-value, 85 | .hljs-preprocessor, 86 | .hljs-pragma, 87 | .hljs-built_in, 88 | .hljs-javadoc, 89 | .smalltalk .hljs-class, 90 | .smalltalk .hljs-localvars, 91 | .smalltalk .hljs-array, 92 | .css .hljs-rule .hljs-value, 93 | .hljs-attr_selector, 94 | .hljs-pseudo, 95 | .apache .hljs-cbracket, 96 | .tex .hljs-formula, 97 | .coffeescript .hljs-attribute { 98 | color: #cc9393; 99 | } 100 | 101 | .hljs-shebang, 102 | .diff .hljs-addition, 103 | .hljs-comment, 104 | .hljs-annotation, 105 | .hljs-pi, 106 | .hljs-doctype { 107 | color: #7f9f7f; 108 | } 109 | 110 | .coffeescript .javascript, 111 | .javascript .xml, 112 | .tex .hljs-formula, 113 | .xml .javascript, 114 | .xml .vbscript, 115 | .xml .css, 116 | .xml .hljs-cdata { 117 | opacity: 0.5; 118 | } 119 | -------------------------------------------------------------------------------- /docs/0-index.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: PhoneGap Documentation 3 | url: / 4 | layout: subpage 5 | next: 1-getting-started/1-install-phonegap/1-desktop.html.md 6 | --- 7 | Excited Robot 8 |

9 | These docs aim to be a comprehensive resource covering PhoneGap and associated 10 | tooling, as well as some general mobile app development concepts we think 11 | developers will find helpful. 12 |

13 | 14 |

15 | If you are new to PhoneGap, we recommend beginning by working through our 16 | Getting Started Guide. 17 | We've also put together a helpful tutorial 18 | on extending our "Hello World" example app. 19 |

20 | 21 | ## _ _ 22 | 23 |
24 | -------------------------------------------------------------------------------- /docs/1-getting-started/0-index.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Getting Started 3 | url: getting-started 4 | layout: subpage 5 | --- 6 | 7 |

This guide is geared to helping people new to PhoneGap get up and running as quickly as possible with the least amount of setup and time.

8 | 9 |
    10 |
  1. Install PhoneGap
  2. 11 |
  3. Install Mobile App
  4. 12 |
  5. Create Your App
  6. 13 |
  7. Preview Your App
  8. 14 |
  9. Going Further
  10. 15 |
16 | 17 | Once you've completed the getting started section, be sure to head over to the [tutorials](/tutorials) and [references](/references) sections where you'll be able to dig into more advanced mobile app development related topics and find numerous useful resources. 18 | -------------------------------------------------------------------------------- /docs/1-getting-started/1-install-phonegap/1-desktop.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Step 1: Install PhoneGap" 3 | url: getting-started/1-install-phonegap/desktop 4 | layout: subpage 5 | tabs: 6 | - label: Desktop App 7 | url: getting-started/1-install-phonegap/desktop 8 | - label: CLI 9 | url: getting-started/1-install-phonegap/cli 10 | next: 1-getting-started/2-install-mobile-app.html.md 11 | --- 12 | 13 | The PhoneGap Desktop application provides a drag and drop interface for creating PhoneGap applications. It's an alternative to using the 14 | [PhoneGap CLI](/getting-started/1-install-phonegap/cli) built for those who prefer a visual user interface 15 | over a command line interface approach. 16 | 17 |
**NOTE:** The getting started steps vary based on the initial PhoneGap tool you install here in step 1. For the rest of the steps be sure to choose either the **Desktop** or **CLI** tab at the top accordingly.
18 | 19 | Select your operating system to continue: 20 | 21 | - Mac OS X 22 | - Windows 23 | 24 | 25 | 26 | ## Mac OS X Installation 27 | 28 | 1. Download the latest [Mac OS X Installer](https://github.com/phonegap/phonegap-app-desktop/releases/download/0.4.5/PhoneGapDesktop.dmg). 29 | 30 | 1. Double-click the downloaded file to run the installer. You will initially be prompted with a license agreement to accept: 31 | 32 | ![](/images/license-agreement.png) 33 | 34 | 1. Drag and drop the application into the **Applications** folder on your Mac as prompted: 35 | 36 | ![](/images/drag-to-apps-folder.png) 37 | 38 | 1. Next simply open the application and proceed to [Step 2](/getting-started/2-install-mobile-app) where you will install the __PhoneGap Developer App__ to your mobile device for previewing the apps you build. 39 | 40 | ![](/images/desktop-app-open.png) 41 | 42 | 43 | 44 | ## Windows Installation 45 | 46 | 1. Download the latest [Windows Installer](https://github.com/phonegap/phonegap-app-desktop/releases/download/0.4.5/PhoneGapSetup-win32.exe). 47 | 48 |
**NOTE:** If you're unable to run the Windows Installer for some reason, there's also a zip file available that can be used to install PhoneGap Desktop manually. Download the [zip file for the latest release](https://github.com/phonegap/phonegap-app-desktop/releases) and follow the instructions in the README and INSTALL files within the downloaded zip.
49 | 50 | 1. Double click the downloaded file to run the installer. You will be prompted with the PhoneGap Desktop Setup Wizard: 51 | 52 | ![](/images/win-desktop1.png) 53 | 54 | 1. Accept the license agreement: 55 | 56 | ![](/images/win-desktop2.png) 57 | 58 | 1. Select the desired destination for the application and click *Next*: 59 | 60 | ![](/images/win-desktop3.png) 61 | 62 | 1. Select the desired location for the shortcut and click *Next*: 63 | 64 | ![](/images/win-desktop4.png) 65 | 66 | 1. Click *Install* to begin the installation: 67 | 68 | ![](/images/win-desktop5.png) 69 | 70 | 1. Click *Finish* to close the Setup Wizard: 71 | 72 | ![](/images/win-desktop6.png) 73 | 74 | 1. Next simply open the application and proceed to next step below where you will install the __PhoneGap Developer App__ to your mobile device for previewing the apps you build. 75 | 76 | ![](/images/win-desktop-app.png) 77 | -------------------------------------------------------------------------------- /docs/1-getting-started/1-install-phonegap/2-cli.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Step 1: Install PhoneGap" 3 | url: getting-started/1-install-phonegap/cli 4 | layout: subpage 5 | tabs: 6 | - label: Desktop App 7 | url: getting-started/1-install-phonegap/desktop 8 | - label: CLI 9 | url: getting-started/1-install-phonegap/cli 10 | next: 1-getting-started/2-install-mobile-app.html.md 11 | --- 12 | 13 | The PhoneGap CLI provides a command line interface for creating PhoneGap apps as an alternative to using the [PhoneGap Desktop App](/getting-started/1-install-phonegap/desktop) for those who prefer working at the command line. The PhoneGap CLI currently has some additional features over the PhoneGap Desktop for building, running and packaging your PhoneGap applications on multiple platforms. If you're comfortable using a CLI this option may be best going forward. 14 | 15 |
**NOTE:** The getting started steps vary based on the initial PhoneGap tool you install here in step 1. For the rest of the steps be sure to choose either the **Desktop** or **CLI** tab at the top accordingly.
16 | 17 | ## Requirements 18 | 19 | There are a few simple requirements you'll need prior to installing the PhoneGap CLI: 20 | 21 | - [node.js](https://nodejs.org/) - a JavaScript runtime to build your JavaScript code 22 | - [git](http://git-scm.com) - used in the background by the CLI to download assets. It comes pre-installed on some operating systems. 23 | 24 | To see if you already have it installed, type `git` from the command line. 25 | 26 | ## Install Steps 27 | 28 | 1. Install the [PhoneGap CLI](https://www.npmjs.com/package/phonegap) via `npm` with the following command from the Terminal app (Mac) or Command Prompt (Win). 29 | 30 | ```sh 31 | $ npm install -g phonegap@latest 32 | ``` 33 | 34 |
**TIPS:** 1) The `$` symbol is used throughout this guide to indicate the command prompt, it should not be typed. 2) `npm` is the node package manager and installed with node.js. The `npm` command fetches the necessary dependencies for the PhoneGap CLI to run on your local machine. It creates a *node_modules* folder with the necessary code needed to run the CLI. The `-g` flag specifies that folder to be installed at the global location so it can be accessed from anywhere on your machine (defaults to */usr/local/lib/node_modules/phonegap* on Mac).
35 | 36 |
**OS X Users:** You may need to prefix this command with `sudo` to allow installation to restricted directories and type the following instead: `$ sudo npm install -g phonegap@latest`

**Windows 8 Users:** If you just installed Node.js, be sure to start the *Node.js Command Prompt* application specifically.
37 | 38 | 1. Test to ensure the PhoneGap CLI is properly installed by typing `phonegap` on the command line. You should see the following `help` text output displayed: 39 | 40 | ```sh 41 | $ phonegap 42 | Usage: phonegap [options] [commands] 43 | Description: 44 | PhoneGap command-line tool. 45 | Commands: 46 | help [command] output usage information 47 | create create a phonegap project 48 | ... 49 | ``` 50 | 51 |
**TIP:** You can access the PhoneGap CLI usage text at any time by adding the keyword `help`, or the `-h` or `--h` attribute with any phonegap command i.e.: `$ phonegap create help`, `$ phonegap serve -h`.
52 | -------------------------------------------------------------------------------- /docs/1-getting-started/2-install-mobile-app.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Step 2: Install Mobile App 3 | url: getting-started/2-install-mobile-app 4 | layout: subpage 5 | next: 1-getting-started/3-create-your-app/1-desktop.html.md 6 | --- 7 | 8 | The [PhoneGap Developer App](http://app.phonegap.com) is a mobile app that runs on devices and allows you to preview and test the PhoneGap mobile 9 | apps you build across platforms without additional platform SDK setup. It automatically provides access to the PhoneGap core APIs 10 | providing instant access to the native device features without having to install any plugins or compile anything locally. It's meant to provide 11 | an easy way for developers to get started creating and testing their PhoneGap applications quickly with minimal setup. 12 | 13 | ## Install PhoneGap Developer 14 | 15 | 1. Locate the free PhoneGap Developer app from one of the following supported app marketplaces and install it to your mobile device: 16 | 17 | - [Google Play](https://play.google.com/store/apps/details?id=com.adobe.phonegap.app) 18 | - [Windows Phone Store](https://www.microsoft.com/en-us/store/p/phonegap-developer/9wzdncrdfsj0) 19 | - [~iTunes~ Currently not available but you can still build it yourself!](https://blog.phonegap.com/update-on-the-phonegap-developer-app-ios-99e07e3309dd) 20 | 21 | 1. Once installed, tap the PhoneGap Developer app icon from your home screen to open it: 22 | 23 | PhoneGap Developer App, iOS 24 | 25 | 1. Once installed, move on to the next step where you will create your first PhoneGap app using the tool you selected in step 1. 26 | 27 |
**NOTE:** The platform SDKs mentioned above refer to the software development kits Apple, Google and Microsoft provide to build applications for their platforms (iOS, Android and Windows respectively). 28 | When you're ready to take your mobile application development further or decide you want to build for each platform locally yourself, you can find the specific instructions for each platform in the PhoneGap Platform Installation Guides. 29 |
30 | -------------------------------------------------------------------------------- /docs/1-getting-started/3-create-your-app/1-desktop.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Step 3: Create Your App 3 | url: getting-started/3-create-your-app/desktop 4 | layout: subpage 5 | tabs: 6 | - label: Desktop App 7 | url: getting-started/3-create-your-app/desktop 8 | - label: CLI 9 | url: getting-started/3-create-your-app/cli 10 | next: 1-getting-started/4-preview-your-app/1-desktop.html.md 11 | --- 12 | 13 | Now that you've installed [PhoneGap Desktop](/getting-started/1-install-phonegap/desktop) and/or the [PhoneGap CLI](/getting-started/1-install-phonegap/cli) to your computer and the [PhoneGap Developer App](/getting-started/2-install-mobile-app) to your mobile devices, you're ready to create your first PhoneGap project. This project will be a PhoneGap mobile app with the ability to run on multiple devices and across operating systems 14 | in just a few simple steps. 15 | 16 | ## Create a PhoneGap Project 17 | 18 | 1. Click the plus sign and select **Create new PhoneGap project** as shown below: 19 | 20 | ![](/images/desktop-app-plus.png) 21 | 22 | 1. You will be prompted with the template list dialog as shown below, where you can choose to create an app based on a sample project. 23 | 24 | Each template has a brief description below the name indicating what type of project will be created. To select a template, click on the radio button next to it. In the image below, the **Hello World** template is selected. 25 | 26 | ![Templates Dialog](/images/templates-list.png) 27 | 28 | The first template option in the list is the default Hello World project. It's proven to be the quickest and easiest way to understand the 29 | basics of building a mobile PhoneGap app so let's start there. 30 | 31 | 1. Ensure the radio button next to the **Hello World** template is selected. 32 | 33 | 1. Click on the green **Next** button. 34 | 35 | 1. You will be presented with a screen to enter information about your project. Choose the path on your local hard drive where you want to create the project, a designated name and an optional *identifier*. Once the information has been entered, click the green **Create project** button. 36 | 37 | ![](/images/desktop-app-create-info.png) 38 | 39 |
Be aware that the ID field is also known as the *package identifier* for Android and the *bundle identifier* for iOS.
40 | 41 | 1. You should now see a view like below, with your new project shown and marked with a left green border, a green play button next to it and a green bar at the bottom. You should also see a server address indicating it's running and the active project. Only one project will be active and running at any time. 42 | 43 | ![](/images/desktop-app-create.png) 44 | 45 |
**TIP:** The server address shown for your project at the bottom in the green bar will be used in the next step so make note of it or keep it open.
46 | -------------------------------------------------------------------------------- /docs/1-getting-started/3-create-your-app/2-cli.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Step 3: Create Your App 3 | url: getting-started/3-create-your-app/cli 4 | layout: subpage 5 | tabs: 6 | - label: Desktop App 7 | url: getting-started/3-create-your-app/desktop 8 | - label: CLI 9 | url: getting-started/3-create-your-app/cli 10 | next: 1-getting-started/4-preview-your-app/2-cli.html.md 11 | --- 12 | 13 | Now that you've installed [PhoneGap Desktop](/getting-started/1-install-phonegap/desktop) and/or the [PhoneGap CLI](/getting-started/1-install-phonegap/cli) 14 | 15 | ## Create Default PhoneGap Project 16 | 17 | The PhoneGap CLI has a default Hello World project for beginners to start with. It's proven to be the quickest and easiest way to understand the basics of building a mobile PhoneGap app so let's start by creating the default project with the CLI. 18 | 19 | 1. Enter the following command from your terminal: 20 | 21 | ```sh 22 | $ phonegap create myApp 23 | ``` 24 | 25 | This will create a folder named **myApp** in the current path location with a default project name of *Hello World* and id of *com.phonegap.helloworld*. 26 | 27 | You can also specify a name and identifier to ensure the project is unique but still contains the default Hello World code project by specifying them as qualified parameters as shown below: 28 | 29 | ```sh 30 | $ phonegap create myApp --id "org.myapp.sample" --name "appSample" 31 | ``` 32 | 33 |
**TIP:** Each of the `create` command options is documented in the help text and can be accessed with `$ phonegap create help`. To access general help from the CLI, type `-h` or `help` with any command.
34 | 35 | 1. Verify that you see the following output in your console after you run the command: 36 | 37 | ```sh 38 | Creating a new cordova project. 39 | ``` 40 | 41 | 1. Change into the new project directory with the `cd` command: 42 | 43 | ```sh 44 | $ cd myApp/ 45 | ``` 46 | 47 | 1. Check to be sure you see the following set of files and folders shown below: 48 | 49 | ```sh 50 | config.xml hooks platforms plugins www 51 | ``` 52 | 53 | 1. `cd` into the ***www*** folder and look around at the files and subfolders in there, this is the content of your app, with the entry point being the **index.html** file. 54 | 55 | ```sh 56 | $ cd www/ 57 | ``` 58 | 59 |
**TIP:** Details about the rest of the files and folders created in the root project will be covered in guides further along. For now just focus on the ***www*** folder and its contents.
60 | -------------------------------------------------------------------------------- /docs/1-getting-started/5-going-further.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Step 5: Going Further 3 | url: getting-started/5-going-further 4 | layout: subpage 5 | --- 6 | 7 | ## Build, Package and Distribute for Production 8 | 9 | This getting started workflow is meant for beginning mobile application development with PhoneGap in the quickest and simplest manner. At some point you will want to move out of the sandbox environment and into a more advanced environment suitable for 10 | building, packaging and distributing your mobile application. 11 | 12 | There are two choices available for building and packaging your applications: 13 | 14 | - Build and package locally using the [PhoneGap CLI](http://docs.phonegap.com/references/phonegap-cli/) 15 | - you should be comfortable with command line environments 16 | - you will need to install SDKs for each device, and there are some restrictions based on your operating system. 17 | 18 | *ex. you cannot build iOS apps on a Windows PC, and cannot build Windows from a Mac* 19 | 20 | ### OR 21 | 22 | - Build and package with [PhoneGap Build](http://build.phonegap.com) cloud service 23 | - build from anywhere, even trigger builds from your device and install it directly 24 | - can pull and build directly from your repo 25 | - no hardware, SDKs, or developer tooling to setup 26 | 27 | Which you choose will depend on how comfortable you are working with a command line environment and more closely with the native SDKs and tools versus leaving it to a cloud service and providing the required details. 28 | 29 | ## Apache Cordova 30 | 31 | Adobe PhoneGap™ is a distribution of [Apache Cordova™](https://cordova.apache.org/). Cordova was originally created by Nitobi, who was then acquired by Adobe in 2011. The project was donated to the Apache Software Foundation (ASF) later that same year to maintain a transparent and open governance and provide a mechanism for other large organizations to contribute. Apache Cordova is the engine that powers Adobe PhoneGap™, similar to how WebKit powers Chrome or Safari. However, Adobe PhoneGap™ provides additional tools that tie into other Adobe services, including tools like the PhoneGap Developer App, the PhoneGap Desktop App, PhoneGap Build and PhoneGap Enterprise. 32 | -------------------------------------------------------------------------------- /docs/2-tutorials/0-index.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Tutorials 3 | url: tutorials 4 | layout: subpage 5 | --- 6 | 7 |

Building a mobile app requires several phases from configuring, developing, debugging and optimizing to finally distributing it to the app stores. Some of these phases can prove to be more challenging. This section of tutorials is offered to help developers tackle some of those challenging issues.

8 | 9 | 15 | 16 | This section is a continuous work in progress as the challenges mobile developers face are ever changing. Be sure to check back often to learn more. 17 | -------------------------------------------------------------------------------- /docs/2-tutorials/2-develop/0-index.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Develop Guides 3 | url: tutorials/develop 4 | layout: subpage 5 | --- 6 | 7 | The tutorials in this section are aimed at helping you with specific development topics or challenges once you've gotten your feet wet in the getting started section and have started building your own apps. 8 | 9 | These are the guides you should look to for information on more advanced topics and to provide you a deeper knowledge base. 10 | -------------------------------------------------------------------------------- /docs/2-tutorials/2-develop/3-single-page-architecture.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Single Page Architecture 3 | url: develop/single-page-architecture 4 | layout: subpage 5 | write: false 6 | --- 7 | 8 | ## Overview 9 | 10 | Single Page Architecture (aka Single Page Applications or SPA's) is a concept many developers building HTML5 apps are likely familiar with, however it's worth mentioning for those that may not be as it is currently considered a hybrid mobile app best practice. 11 | 12 | The reason it's popular for mobile development specifically is the resulting native-like fluid user experience that can be attained using this architecture since the UI can be redrawn without requiring a server roundtrip to retrieve HTML. State changes occur via JavaScript using templates and DOM manipulation and the logic stays on the client side. 13 | 14 | ![](/images/spa.png) 15 | 16 | **Figure 1:** Single Page App Architecture Diagram 17 | 18 | ## Characteristics 19 | 20 | Some characteristics of a Single Page Application are listed below: 21 | 22 | + **Routing** – navigation and view state changes without reload. Often implemented via a hash (#) in the URL (ie: `http://myapp.com/#/users/12`). 23 | 24 | + **Templating** – declarative binding of data to HTML templates replaces UI coding and DOM manipulations (see [Mustache.js](http://mustache.github.io/), [Underscore.js](http://underscorejs.org) 25 | 26 | + **Controllers** – JavaScript code to handle state changes, data manipulation, AJAX calls etc that separate views and models using MVC or MVVM patterns. (see AngularJS, Backbone.js, Ember, Knockout etc) 27 | 28 | + **Chunking** – chunks of HTML fragments and JSON data are loaded instead of receiving a full HTML page from a web server on every request. 29 | 30 | + **Local storage** – data is often stored locally for performance and offline access. 31 | 32 | ### Best Practices 33 | 34 | Some general best practices to keep in mind when building Single Page Applications are: 35 | 36 | 1. Load data locally first before going to a server 37 | 1. Handle for offline scenarios. 38 | 1. Cache images and resources 39 | 40 | ### Benefits 41 | 42 | + Less network bandwidth is needed/used 43 | + Navigation is faster 44 | 45 | ### Frameworks 46 | 47 | Some popular JavaScript frameworks to help you build Single Page Applications are listed below: 48 | 49 | + [React](https://facebook.github.io/react/) 50 | + [AngularJS](http://angularjs.org) 51 | + [Ember](http://emberjs.com) 52 | + [Backbone.js](http://backbonejs.org) 53 | + [Knockout](http://knockoutjs.com) 54 | 55 | ### Additional Reading 56 | 57 | [Single Page App Book](http://singlepageappbook.com/) 58 | -------------------------------------------------------------------------------- /docs/2-tutorials/2-develop/4-proper-scrolling-technique.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Proper Scrolling Technique 3 | url: develop/proper-scrolling-technique 4 | layout: subpage 5 | write: false 6 | --- 7 | 8 | Proper Scrolling Technique content here 9 | -------------------------------------------------------------------------------- /docs/2-tutorials/2-develop/5-storage-options.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Storage Options 3 | url: develop/storage-options 4 | layout: subpage 5 | write: false 6 | --- 7 | 8 | Storage Options content here 9 | -------------------------------------------------------------------------------- /docs/2-tutorials/2-develop/7-writing-a-plugin/1-ios.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Writing an iOS Plugin 3 | url: develop/writing-a-plugin/ios 4 | layout: subpage 5 | tab: iOS 6 | write: false 7 | --- 8 | 9 | Writing an iOS Plugin content here 10 | -------------------------------------------------------------------------------- /docs/2-tutorials/2-develop/7-writing-a-plugin/2-android.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Writing an Android Plugin 3 | url: develop/writing-a-plugin/android 4 | layout: subpage 5 | tab: Android 6 | write: false 7 | --- 8 | 9 | Writing an Android Plugin content here 10 | -------------------------------------------------------------------------------- /docs/2-tutorials/2-develop/7-writing-a-plugin/3-windows.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Writing a Windows Phone Plugin 3 | url: develop/writing-a-plugin/windows 4 | layout: subpage 5 | tab: Windows 6 | write: false 7 | --- 8 | 9 | Writing a Windows Phone Plugin content here 10 | -------------------------------------------------------------------------------- /docs/2-tutorials/2-develop/8-accessibility.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Accessibility 3 | url: develop/accessibility 4 | layout: subpage 5 | write: false 6 | --- 7 | 8 | Accessibility content here 9 | -------------------------------------------------------------------------------- /docs/3-references/0-index.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: References 3 | url: references 4 | layout: subpage 5 | --- 6 | 7 |

The guides in this section cover all of the PhoneGap-specific tooling and are meant to be used as references. If you're new to PhoneGap, we recommend starting with the Getting Started guides guides first for a more complete understanding.

8 | 9 | 15 | 16 | If you're looking for information on the Cordova CLI or specific Cordova configuration, you should refer to the [Official Apache Cordova Documentation](https://cordova.apache.org/docs/en/latest/). 17 | -------------------------------------------------------------------------------- /docs/3-references/browser-support/0-index.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: PhoneGap Browser Support 3 | url: references/browser-support 4 | layout: subpage 5 | --- 6 | 7 | PhoneGap apps are built with web technologies providing the benefit of allowing you to use your desktop browser to rapidly iterate through your development phases while taking advantage of the built-in developer tooling you already know and love. 8 | 9 | You can even design your app layout and test it across a variety of screen resolutions without moving to a physical device using tools like the [Chrome mobile device emulators](https://developers.google.com/web/tools/chrome-devtools/iterate/device-mode/) and [Safari Responsive Design Mode](https://developer.apple.com/safari/tools/). 10 | 11 | ## Chrome Developer Tools 12 | 13 | ![](/images/browser-support/chrome-debug-deviceready.png) 14 | 15 | ## Safari Responsive Design Mode 16 | 17 | ![](/images/browser-support/safari-responsive2.png) 18 | 19 | ## Overview 20 | 21 | The specific browser support referred to in this guide is different than just opening up your `index.html` from your `www` folder in your browser as you may have done in the past. This includes support for the Apache Cordova core plugins and the Cordova `deviceready` event to aid in your testing and debugging. 22 | 23 | The browser as an initial platform target helps greatly reduce the challenges faced by mobile developers due to platform fragmentation. It also provides the ability for a developer to build an app for both the desktop web browser and mobile device where the additional native functionality is used only when running on the device by leveraging plugins. 24 | 25 | The browser platform is not without its limitations, however, and developers should understand those limitations specifically to get the most value from this new platform target during their development phase. Check out the [Caution/Next Steps](/references/browser-support/caution-next-steps) section for more details. 26 | -------------------------------------------------------------------------------- /docs/3-references/browser-support/2-plugin-support.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Plugin Support 3 | url: references/browser-support/plugin-support 4 | layout: subpage 5 | --- 6 | 7 | The browser platform includes the ability to use any of the [Apache Cordova core plugins](/references/plugin-apis/) in your apps without disrupting your development. The level of support for them will vary depending on the type of functionality the plugin exposes. In some cases the browser version of the plugin may return mock data, and in other cases it may simply fail silently. You can take a look in the `src/browser` folder of any of the core plugins to determine exactly what to expect. 8 | 9 | ![](/images/browser-support/browser-folder.png) 10 | 11 | For instance, take a look at the simple [DeviceProxy class](https://github.com/apache/cordova-plugin-device/tree/master/src/browser) for the device plugin and you'll see how it uses the User Agent to determine the specific browser being used. The [cordova-plugin-device-motion](https://github.com/apache/cordova-plugin-device-motion/blob/master/src/browser/AccelerometerProxy.js) is one you can check out to see how it simply returns mock data. The idea is that you're able to debug your apps with some level of support for the core plugins so you're not hung up on errors as a result of not running natively. 12 | 13 |
**Note:** Check the plugin documentation for specific notes on the browser platform support for that particular plugin.
14 | 15 | Some of the core plugins use JavaScript API's that are actually supported in the Desktop browser natively, and in those cases the plugin will defer to use them. For instance, `cordova-plugin-geolocation` uses an API that is already supported in Chrome, Safari and Firefox. 16 | 17 |
**TIP:** Check the Can I Use site to see which JavaScript APIs are currently supported by a given browser.
18 | -------------------------------------------------------------------------------- /docs/3-references/browser-support/3-multi-device.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Multi-Device Testing 3 | url: references/browser-support/multi-device 4 | layout: subpage 5 | --- 6 | 7 | ## Multiple Platform Support 8 | 9 | The addition of the browser platform does not affect the multi-device functionality that was already present when serving apps. You can now serve your apps and test them in the browser as well as on any Android, iOS or Windows device or simulator all at the same time with live reloading, providing an efficient workflow for concurrent development and testing. 10 | 11 | ![](/images/browser-support/multidevice.png) 12 | -------------------------------------------------------------------------------- /docs/3-references/browser-support/4-custom-plugins.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Custom Plugins 3 | url: references/browser-support/custom-plugins 4 | layout: subpage 5 | --- 6 | 7 | With the browser platform target support in PhoneGap, you also have the ability to write code handling for it specifically when developing your own custom plugins. Some plugins will be easier to support it than others depending on what native feature they're exposing by allowing you to specify mock data or simply returning a console message. It's up to the plugin author to determine what's most desired in that case. 8 | 9 | To support the browser in your own plugins, follow the [Cordova Plugin Development docs](https://cordova.apache.org/docs/en/latest/plugin_ref/spec.html) on the Official Apache Cordova site and ensure you've defined the `browser` platform handling in your `plugin.xml` mapping. You will define your JavaScript files to implement your specific `browser` platform handling code in the `src/browser` path in your plugin root. For instance: 10 | 11 | Custom plugin directory structure 12 | 13 | You'll need to ensure you name these browser platform-specific JS files with different names then the client-side implementation included in the `www` by default. Most of the Apache Cordova plugins add the word `Proxy` to the class. You can take a look at any of the [Apache Cordova core plugins](/references/plugin-apis/) for specific examples. 14 | 15 | For instance, by taking a look at the Apache Cordova Camera [plugin.xml](https://github.com/apache/cordova-plugin-camera/blob/master/plugin.xml), you will see how the `CameraProxy.js` class is defined with the following: 16 | 17 | ```xml 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | ``` 31 | 32 |
**Tip:** The `` element is required to tell Cordova to initialize the module.
33 | -------------------------------------------------------------------------------- /docs/3-references/browser-support/5-caution-next-steps.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Caution / Next Steps 3 | url: references/browser-support/caution-next-steps 4 | layout: subpage 5 | --- 6 | 7 | When you are developing an app to be consumed on a mobile device, it should go without saying that the best environment for testing is going to be that target device itself. Some things to specifically note and keep in mind while testing with the browser platform are listed below: 8 | 9 | - The desktop browsers often differ in the support for certain features and APIs versus the mobile browsers, and between platforms. You should refer to the [Can I Use](http://caniuse.com) site for specific details of which features your apps use and what is supported. 10 | 11 | ![](/images/browser-support/caniuse.png) 12 | 13 | - The browser does not have a soft keyboard to test with so you cannot test the effect it might have on the UI/screen layout when using form controls/input fields. 14 | - Certain devices may support hardware features that cannot be tested in a desktop browser. 15 | - Apache Cordova Plugins expose native features that can't always be mocked properly since they are native to a platform. 16 | - The application is being served from an IP address rather than a filesystem affecting the way security is handled. 17 | - Performance testing for things like low battery, poor network coverage, low available memory and interrupt testing for situations like incoming/outgoing calls, texts, notifications etc cannot be properly tested in the browser. 18 | 19 | ## Development/Testing Options: 20 | 21 | 1. Use the browser to develop as much of your app as possible with the tooling you already know and use daily while being aware of the limitations noted above. 22 | 23 | 1. Use the [PhoneGap Developer App](/references/developer-app/) on a physical device to pair and test your app being served from either the PhoneGap CLI or the PhoneGap Desktop App in addition to the browser platform. See the [Getting Started Guides](/getting-started/2-install-mobile-app/) for more details. 24 | 25 | 1. Get a compiled version of your app using the PhoneGap/Cordova CLI or [PhoneGap Build](http://build.phonegap.com) (to avoid having to set up platform SDK's) and test on the platforms you're targeting with a physical device or simulator. Apple provides the [iOS simulator](https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/iOS_Simulator_Guide/Introduction/Introduction.html) as part of Xcode, and Google offers the [Android Emulator](http://developer.android.com/tools/help/emulator.html) as part of the Android developer tools. There's also the [Genymotion](http://genymotion.com/) emulator which can be used to test your Android apps and often runs faster than the emulator packaged in the Android tooling. 26 | 27 | 1. Leverage mobile testing and automation services ([Sauce Labs](https://saucelabs.com), [Appium](http://appium.io/) etc) and mobile app intelligence services ([Apteligent](https://www.apteligent.com/), [Crashlytics](https://try.crashlytics.com/)) to provide crash test reporting and other analytics to ensure your app is providing the best user experience once delivered. 28 | 29 |
**Note:** Make a point to check out this Next Steps Guide in the Apache Cordova docs for more information on testing, remote debugging and more.
30 | -------------------------------------------------------------------------------- /docs/3-references/browser-support/usage/1-desktop.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Usage 3 | url: references/browser-support/usage/desktop 4 | layout: subpage 5 | tabs: 6 | - label: Desktop App 7 | url: references/browser-support/usage/desktop 8 | - label: CLI 9 | url: references/browser-support/usage/cli 10 | --- 11 | 12 |
You should ensure you have the latest version of PhoneGap Desktop before getting started.
13 | 14 | PhoneGap makes it easy to take advantage of the browser target by automatically adding it as an additional platform when your apps are *served* (run on a local web server). 15 | 16 | In the image below, when the arrow (>) is green it implies that PhoneGap project is being served on the IP Address shown in the green bar at the bottom. 17 | 18 | ![](/images/desktop-app-create.png) 19 | 20 | You can then open that IP Address directly in your browser (or via `http://localhost:`) and start debugging. You can also start making edits to your source code and see the changes immediately in the browser without having to restart due to the built-in live reload feature. 21 | 22 | ![](/images/browser-support/live-reload.png) 23 | 24 |
**TIP:** You can change the port number used for serving your projects via the PhoneGap Desktop settings.
25 | 26 |
**Note:** If you're new to PhoneGap Desktop, check out the Getting Started guide.
27 | 28 | The browser platform support ensures the `deviceready` event is fired in the browser and allows you to use all of the core plugins without disrupting your development. 29 | 30 | ![](/images/browser-support/chrome-debug-deviceready.png) 31 | 32 |
**Note:** Check out the plugin support section for more details on how plugins can be used in the browser.
33 | -------------------------------------------------------------------------------- /docs/3-references/browser-support/usage/2-cli.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Usage 3 | url: references/browser-support/usage/cli 4 | layout: subpage 5 | tabs: 6 | - label: Desktop App 7 | url: references/browser-support/usage/desktop 8 | - label: CLI 9 | url: references/browser-support/usage/cli 10 | --- 11 | 12 |
You should ensure you have installed the latest version of the PhoneGap CLI by running `$ npm update -g phonegap@latest`
13 | 14 | PhoneGap makes it easy to use the browser target by adding it automatically as an additional platform when you `serve` your apps with the [PhoneGap CLI](/references/phonegap-cli/serve/): 15 | 16 | ```sh 17 | $ phonegap serve 18 | ``` 19 | 20 | You will see a local IP address in the console output which you can open directly in your browser (or via `http://localhost:`) and start debugging. 21 | 22 | ![](/images/browser-support/serve-command.png) 23 | 24 | You can also start making edits to your source code and see the changes immediately in the browser without having to restart due to the built-in live reload feature. 25 | 26 | ![](/images/browser-support/live-reload.png) 27 | 28 |
**TIP:** You can pass a port number to use specifically when serving your app using the `--port` parameter. For example `$ phonegap serve --port 3002`.
29 | 30 | The browser platform support ensures the `deviceready` event is fired in the browser and allows you to use all of the core plugins without disrupting your development. 31 | 32 | ![](/images/browser-support/chrome-debug-deviceready.png) 33 | 34 |
**Note:** Check out the plugin support section for more details on how plugins can be used in the browser.
35 | 36 | ## No Browser Support Flag 37 | 38 | Of course, using the browser support may not be necessary for all users. If you would like to continue serving applications without the browser, you can do so by running 39 | 40 | ```sh 41 | $ phonegap serve --no-browser. 42 | ``` 43 | -------------------------------------------------------------------------------- /docs/3-references/desktop-app/0-index.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: PhoneGap Desktop App 3 | url: references/desktop-app 4 | layout: subpage 5 | --- 6 | 7 | ## Overview 8 | 9 | The PhoneGap Desktop App is the easiest way to get started with PhoneGap. It's an alternative to the PhoneGap CLI yet uses the same libraries behind the scenes with no complicated installation. You don't need `git`, `npm`, or even `Node.js`, you simply install it to your desktop, create a project and run it on your device. 10 | 11 | ![Pairing](/images/phonegap-app-desktop-pair.png) 12 | 13 | ## Supported Platforms 14 | 15 | PhoneGap Desktop is currently available for [Mac and Windows](https://github.com/phonegap/phonegap-app-desktop/releases). 16 | 17 | ## Guide Sections 18 | 19 | The sections covered in this reference include: 20 | 21 | - [Installation Steps](/references/desktop-app/install/mac) 22 | - [Creating a Project](/references/desktop-app/create-project) 23 | - [Opening an Existing Project](/references/desktop-app/open-project) 24 | - [Previewing your App](/references/desktop-app/pair-with-dev-app/) 25 | - [Removing a Project](/references/desktop-app/remove-project) 26 | - [Active vs Inactive Projects](/references/desktop-app/active-vs-inactive) 27 | - [Viewing the Server Log](/references/desktop-app/view-server-log) 28 | - [Updating Software Version](/references/desktop-app/7-update-version/mac) 29 | - [Editing Settings](/references/desktop-app/edit-settings) 30 | - [Troubleshooting/FAQ](/references/desktop-app/troubleshoot-faq) 31 | - [Developer Console](/references/desktop-app/developer-console) 32 | -------------------------------------------------------------------------------- /docs/3-references/desktop-app/1-install/1-mac.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Installation 3 | url: references/desktop-app/install/mac 4 | layout: subpage 5 | tabs: 6 | - label: Mac 7 | url: references/desktop-app/install/mac 8 | - label: Win 9 | url: references/desktop-app/install/win 10 | --- 11 | 12 | 1. Download the latest [Mac OS X Installer](https://github.com/phonegap/phonegap-app-desktop/releases/download/0.4.5/PhoneGapDesktop.dmg). 13 | 14 | 1. Double-click the downloaded file to run the installer. You will initially be prompted with a license agreement to accept: 15 | 16 | ![](/images/license-agreement.png) 17 | 18 | 1. Drag and drop the application into the **Applications** folder on your Mac as prompted: 19 | 20 | ![](/images/drag-to-apps-folder.png) 21 | 22 | 1. PhoneGap Desktop is now installed and ready to run. 23 | -------------------------------------------------------------------------------- /docs/3-references/desktop-app/1-install/2-win.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Installation 3 | url: references/desktop-app/install/win 4 | layout: subpage 5 | tabs: 6 | - label: Mac 7 | url: references/desktop-app/install/mac 8 | - label: Win 9 | url: references/desktop-app/install/win 10 | --- 11 | 12 | 1. Download the latest [Windows Installer](https://github.com/phonegap/phonegap-app-desktop/releases/download/0.4.5/PhoneGapSetup-win32.exe). 13 | 14 |
**NOTE:** If you're unable to run the Windows Installer for some reason, there's also a zip file available that can be used to install PhoneGap Desktop manually. Download the zip file for the latest release and follow the instructions in the README and INSTALL files within the downloaded zip.
15 | 16 | 1. Double click the downloaded file to run the installer. You will be prompted with the PhoneGap Desktop Setup Wizard: 17 | 18 | ![](/images/win-desktop1.png) 19 | 20 | 1. Accept the license agreement: 21 | 22 | ![](/images/win-desktop2.png) 23 | 24 | 1. Select the desired destination for the application and click *Next*: 25 | 26 | ![](/images/win-desktop3.png) 27 | 28 | 1. Select the desired location for the shortcut and click *Next*: 29 | 30 | ![](/images/win-desktop4.png) 31 | 32 | 1. Click *Install* to begin the installation: 33 | 34 | ![](/images/win-desktop5.png) 35 | 36 | 1. Click *Finish* to close the Setup Wizard: 37 | 38 | ![](/images/win-desktop6.png) 39 | 40 | 1. PhoneGap Desktop is now installed and ready to run. 41 | -------------------------------------------------------------------------------- /docs/3-references/desktop-app/10-troubleshoot-faq.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: FAQ/Troubleshoot 3 | url: references/desktop-app/troubleshoot-faq 4 | layout: subpage 5 | --- 6 | 7 | ## Building / Compiling the PhoneGap Desktop 8 | 9 | - How do I fix the `too many files open error` or `Fatal error: EMFile, open error` using the `Grunt` task to build / compile PhoneGap Desktop? 10 | 11 | >_On Mac OSX follow these [instructions](https://github.com/phonegap/phonegap-app-desktop/issues/168#issuecomment-53630951)._ 12 | 13 | ## Operating System Compatibility 14 | 15 | - Does the PhoneGap Desktop work on Windows? 16 | 17 | >_Yes, however it's only been tested on Windows 7 and Windows 8._ 18 | > 19 | >_If you're having problems running the PhoneGap Desktop App on Windows try these [steps](https://github.com/phonegap/phonegap-app-desktop/issues/203#issuecomment-60002264) or try using this [workaround](https://github.com/phonegap/phonegap-app-desktop/issues/258#issuecomment-67997880)_. 20 | 21 | ## PhoneGap Desktop App & PhoneGap Developer App 22 | 23 | - Why won't my PhoneGap Developer App connect to the local server started by the PhoneGap Desktop App? 24 | 25 | >_The computer with PhoneGap Desktop App and the mobile device with PhoneGap Developer App must be on the same network._ 26 | > 27 | >_Your network may have the PhoneGap Desktop App's server port blocked. [this could be the result of network security settings, firewall, VPN or being on a corporate network](https://github.com/phonegap/phonegap-app-desktop/issues/162)._ 28 | -------------------------------------------------------------------------------- /docs/3-references/desktop-app/11-developer-console.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Developer Console 3 | url: references/desktop-app/developer-console 4 | layout: subpage 5 | --- 6 | 7 | When using the desktop app we have found that there are some people who have difficult to debug issues, particularly with launching the app or getting through project creation. We decided to add the developer console option so that we can help users to better understand what is causing these errors, but also so that they can provide us with this additional information in order to hopefully resolve the issue. Please do not confuse this with the server logs. This will **NOT** show the errors or logs from your apps, but only from the desktop app. 8 | 9 | 1. To view the developer console, you can find the option in the file menu under "Help". 10 | 11 | ![Developer Console File Menu](/images/desktop-app-console-menu.png) 12 | 13 | 1. Once the developer console is open you will be able to inspect the desktop app and see any error messages that have been output. 14 | 15 | ![Developer Console](/images/desktop-app-dev-console.png) 16 | 17 | 1. If you see any error messages, please check our [issue tracker](https://github.com/phonegap/phonegap-app-desktop/issues) to see if it has been reported already. If it hasn't then we encourage to please file a new issue! 18 | -------------------------------------------------------------------------------- /docs/3-references/desktop-app/2-create-project.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Create a Project 3 | url: references/desktop-app/create-project 4 | layout: subpage 5 | --- 6 | 7 | There are multiple ways to create a project using PhoneGap Desktop; via the **Plus (+)** button, from the **File** menu or by drag 8 | and drop. 9 | 10 | ## Create Project Options 11 | 12 | ### 1. Using the Plus Button 13 | 14 | Click on the **+** button in the side menu shown below: 15 | ![Add Project Button](/images/docs-plus-button.png) 16 | 17 | You will then be presented with the following options. Choose **Create new PhoneGap project**. 18 | 19 | ![Create Project Button](/images/docs-add-new.png) 20 | 21 | ### 2. Using the File Menu 22 | 23 | Click **File -> New Project** in the menu bar to create a new project. You will be taken directly to the **New Project Dialog** 24 | explained below. 25 | 26 | ![File New Project](/images/docs-file-menu.png) 27 | 28 | ## New Project Dialog 29 | 30 | Once you've chosen to create a new project you will be prompted with the **STEP 1 of 2 | SELECT A TEMPLATE** dialog where you can choose 31 | to create your app based on a template from the list shown. Each template has a brief description below the name 32 | indicating what type of project will be created. To select a template, click on the radio button next to it. In the image below, the **Hello World** template is selected. 33 | 34 | ![Templates Dialog](/images/templates-list.png) 35 | 36 | Once you've selected the template you want to use, click on the green **Next** button. You will be taken to the **STEP 2: PROJECT DETAILS** dialog to enter the details about your app. 37 | 38 | ![Create New Project Dialog](/images/docs-create-dialog.png) 39 | 40 | 1. Choose a folder where your project will be created in the **Local path** section. 41 | 42 |
**NOTE:** This path will default to the last path chosen once you've created your first project.
43 | 44 | 1. Enter a name for your project in the **Name** section. 45 | 46 | 1. Optionally enter a project ID in the **ID** text field. If you choose not to enter a project ID, your project will be given a default ID of `com.phonegap.helloworld`. This ID field will be used for the *package identifier* for Android and the *bundle identifier* for iOS and is typically in reverse domain style. 47 | 48 | 1. Click on the **Create project** button. Your new project will be created and started on the local web server. The project created will be based on the default PhoneGap Hello World application. 49 | 50 | ## Next Steps 51 | 52 | You can now test out your new app by [pairing it](/references/desktop-app/pair-with-dev-app/) with the **PhoneGap Developer App** running on your mobile device. 53 | -------------------------------------------------------------------------------- /docs/3-references/desktop-app/3-open-project.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Open a Project 3 | url: references/desktop-app/open-project 4 | layout: subpage 5 | --- 6 | 7 | There are multiple ways to open an existing project in PhoneGap Desktop, similar to project creation. Once your project is loaded into PhoneGap Desktop it will automatically become the active project and start running on the local web server. Then you can test it out by [pairing it](/references/desktop-app/pair-with-dev-app//) with the **PhoneGap Developer App** running on your mobile device. 8 | 9 | ## Open Project Options 10 | 11 | ### 1. Using the Plus Button 12 | 13 | To open an existing project, click on the **+** button in the side menu: 14 | ![Add Project Button](/images/docs-plus-button.png) 15 | 16 | Choose **Add existing PhoneGap project** from the options presented: 17 | ![Create Project Button](/images/docs-open-existing.png) 18 | 19 | ### 2. Using the File Menu 20 | 21 | Click **File -> Open Project** in the menu bar to open an existing project. 22 | ![File Open Project](/images/docs-file-menu.png) 23 | 24 | ### 3. Using Drag & Drop 25 | 26 | You can also drag any file or folder onto the PhoneGap Desktop interface to add it to your list of projects. Locate the 27 | project you would like to add from you hard drive and drag it into the Desktop app in the area marked *Drop PhoneGap project folders here*: 28 | ![Drag Drop Location](/images/drag-drop-location.png) 29 | 30 | ### Select Existing Project 31 | 32 | After choosing one of the methods above, you will be prompted with a file selection dialog. Choose the root project folder for the existing PhoneGap project you wish to open in PhoneGap Desktop. It will immediately be set as the active project and started on the local web server. 33 | 34 | ![Open existing project dialog](/images/opened-existing-project.png) 35 | 36 | ### Next Steps 37 | 38 | Once you've selected the folder that contains a valid existing project, it will be added to the list of projects displayed in PhoneGap Desktop's interface and started on the local web server. It's also ready to be [paired with the PhoneGap Developer App](/references/desktop-app/pair-with-dev-app) for easy preview and testing. 39 | -------------------------------------------------------------------------------- /docs/3-references/desktop-app/4-active-vs-inactive.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Active vs Inactive 3 | url: references/desktop-app/active-vs-inactive 4 | layout: subpage 5 | --- 6 | 7 | The ***active*** project is the project currently being served on the local web server by PhoneGap Desktop and there can only be one ***active*** project at any given time. PhoneGap Desktop denotes the ***active*** project with a green left border and green play button. You will also notice a grey "stop" button displayed below the play button for the ***active*** project only. 8 | 9 | An ***inactive*** project is any other project that has been created or opened in PhoneGap Desktop but is not currently being served on the local web server. 10 | 11 | In the screenshot below, the first project is ***active*** and the second project is ***inactive***. 12 | 13 | ![Project Listing](../../../images/docs-active-project.png) 14 | 15 | ## Activate a Project 16 | 17 | To **activate** a project: 18 | 19 | 1. Create or open an existing project and it will automatically become active. 20 | 1. Manually click on the play button for any project in the list. 21 | 22 | ## Deactivate a Project 23 | 24 | To **deactivate** a project: 25 | 26 | 1. Manually click the stop button on the currently active project. The project will lose the green border and play button and the server will show that it's offline. 27 | -------------------------------------------------------------------------------- /docs/3-references/desktop-app/5-pair-with-dev-app.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Preview an App 3 | url: references/desktop-app/pair-with-dev-app 4 | layout: subpage 5 | --- 6 | 7 | You can use the **PhoneGap Developer App** paired with **PhoneGap Desktop** to immediately preview your app on a device without installing platform SDKs, registering devices, or compiling code. For further instructions on installing the PhoneGap Developer App to your mobile device, see the [Getting Started Guide](/getting-started/2-install-mobile-app). 8 | 9 | The local web server started by **PhoneGap Desktop** that hosts your project returns a server address you can enter into the **PhoneGap Developer** app running on a mobile device. 10 | 11 | ## Preview on a Device 12 | 13 |
Double check to ensure you're running your device and computer on the same network before continuing.
14 | 15 | 1. In PhoneGap Desktop, ensure the project you want to test is active (or click the green "play" button next to it to make it active). Locate the server address it's currently running on in the footer of the app as shown below: 16 | 17 | ![](/images/desktop-app-create.png) 18 | 19 | 1. Open the PhoneGap Developer App on a mobile device and enter the server address noted above then tap **Connect**. 20 | 21 |
**NOTE:** Tap directly on the server address displayed in the terminal screen of the PhoneGap Developer app to change it to match yours. The value filled in by default is only a sample.
22 | 23 | Developer App, enter server address 24 | 25 | 1. You should see the connection occur followed by a success message as shown below. If you receive an error of any kind, ensure once again that you are connected to the same network on both your device and computer. You could also check the [issue tracker](https://github.com/phonegap/phonegap-app-developer/issues) and [PhoneGap Google Groups](https://groups.google.com/forum/#!forum/phonegap) list for further help. 26 | 27 | Developer App, connection success 28 | 29 | 1. Once the PhoneGap Developer app connects, it will load and display your application as shown below: 30 | 31 | Developer App, preview 32 | 33 |
**TIP:** Gestures can be used while you're previewing your app. A "3 finger tap" will return you to the main screen and a "4 finger tap" will cause a refresh.
34 | 35 | ### Video Example 36 | 37 |
38 | 39 |
40 | 41 | See the [Getting Started Docs](/getting-started/4-preview-your-app/desktop) for more details. 42 | -------------------------------------------------------------------------------- /docs/3-references/desktop-app/6-remove-project.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Remove a Project 3 | url: references/desktop-app/remove-project 4 | layout: subpage 5 | --- 6 | 7 | Removing a project in PhoneGap Desktop simply unloads it from the list of projects, it doesn't actually delete any files from your hard drive. You could easily open it back up in PhoneGap Desktop via the [Open Project](/references/desktop-app/open-project) options. 8 | 9 | 1. To remove a project, start by clicking on the "minus" button in the side menu. Once clicked, a red 'X' button will be added to each project as shown below: 10 | 11 | ![Minus Button](/images/docs-minus-button.png) 12 | 13 | 1. Click the red button for the project(s) you wish to remove in the list. When a project is removed you will be notified that it has been removed from the PhoneGap Desktop but not from your computer's file system. 14 | 15 | ![Remove Project Confirmation](/images/docs-remove-notification.png) 16 | -------------------------------------------------------------------------------- /docs/3-references/desktop-app/7-update-version/1-mac.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Update Version 3 | url: references/desktop-app/7-update-version/mac 4 | layout: subpage 5 | tabs: 6 | - label: Mac 7 | url: references/desktop-app/7-update-version/mac 8 | - label: Win 9 | url: references/desktop-app/7-update-version/win 10 | --- 11 | 12 | PhoneGap Desktop will automatically prompt you when a new version is available with the following dialog: 13 | 14 | ![Update Dialog](/images/update-dialog.png) 15 | 16 | Click the green **Update** button and PhoneGap Desktop will begin downloading the latest version. When the download is complete you will see the following dialog: 17 | 18 | ![Update Complete](/images/update-complete.png) 19 | 20 | Click the green **Restart** button to restart PhoneGap Desktop with the latest version. 21 | 22 | ## Verify the Update 23 | 24 | You can verify the update by clicking on the question mark button and selecting **About**: 25 | 26 | ![Help Button](/images/help-button.png) 27 | 28 | You should see that the version number shown in parentheses below now reflects the latest update. 29 | -------------------------------------------------------------------------------- /docs/3-references/desktop-app/7-update-version/2-win.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Update Version 3 | url: references/desktop-app/7-update-version/win 4 | layout: subpage 5 | tabs: 6 | - label: Mac 7 | url: references/desktop-app/7-update-version/mac 8 | - label: Win 9 | url: references/desktop-app/7-update-version/win 10 | --- 11 | 12 | Currently you will need to install the latest version for Windows manually. 13 | 14 | 1. Navigate to the [PhoneGap Desktop Releases](https://github.com/phonegap/phonegap-app-desktop/releases) site. 15 | 1. Choose the Windows Setup installer (.exe). 16 | 1. Double click the downloaded file and you will be prompted with the followoing dialog. Press Run to install to your desktop. 17 | 18 | ![](/images/win-install.png) 19 | -------------------------------------------------------------------------------- /docs/3-references/desktop-app/8-edit-settings.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Edit Settings 3 | url: references/desktop-app/edit-settings 4 | layout: subpage 5 | --- 6 | 7 | You can use the settings dialog to change user configurable settings for PhoneGap Desktop. 8 | 9 | 1. Begin by clicking on the "gear" icon in the side menu. 10 | 11 | ![Settings Button](/images/docs-settings-button.png) 12 | 13 | 1. Once the "gear" icon has been clicked, the settings dialog will be presented containing PhoneGap Desktop's configurable settings: 14 | 15 | ![Settings Dialog](/images/docs-settings-dialog.png) 16 | 17 |
You will know you have a port conflict if you see the message `listen EADDRINUSE::3000` in place of the server IP address when PhoneGap Desktop tries to start a project on the local web server. Use this dialog to modify the port number and resolve the issue.
18 | -------------------------------------------------------------------------------- /docs/3-references/desktop-app/9-view-server-log.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Server Log 3 | url: references/desktop-app/view-server-log 4 | layout: subpage 5 | --- 6 | 7 | The server log displays messages about the status of the active project and can be a useful tool when testing your app. 8 | 9 | 1. To view the server log, you will need to have at least one project loaded into PhoneGap Desktop. PhoneGap Desktop will automatically start the local server for the active project. 10 | 11 | 1. Ensure that your project has been served successfully by comparing it to the screenshot below. You should see a similar message in the footer containing your own local server's IP address and port number: 12 | 13 | ![Server Online](/images/docs-server-status-online.png) 14 | 15 | 1. To view the server log, click on the log button in the side menu shown below: 16 | 17 | ![Server Log Button](/images/docs-server-log-button.png) 18 | 19 | 1. You will be presented with a viewer displaying messages from local server and other useful messages. 20 | 21 | ![Server Log Viewer](/images/docs-server-log-window.png) 22 | -------------------------------------------------------------------------------- /docs/3-references/developer-app/0-index.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: PhoneGap Developer App 3 | url: references/developer-app 4 | layout: subpage 5 | --- 6 | 7 | ## Overview 8 | 9 | The PhoneGap Developer App runs on your mobile device and is used to preview the PhoneGap apps you're building quickly on a device. You simply connect PhoneGap Developer to the IP address of your app being served from either the PhoneGap Desktop app or the PhoneGap CLI running from a computer on the same network. The PhoneGap Developer app is like a sandbox type of environment with a pre-installed set of plugins available to use immediately as well without worrying about installing them. For a list of the plugins currently included, see the [FAQ](/references/developer-app/troubleshoot-faq). 10 | 11 | ![Pairing](/images/phonegap-developer-app-pairing.png) 12 | 13 |
**Note:** See our Getting Started Guide for a step by step walkthrough of how to do this from scratch.
14 | 15 | ## Supported Platforms 16 | 17 | The PhoneGap Developer app is currently supported on iOS, Android and Windows Phone. 18 | 19 | ## Guide Sections 20 | 21 | The sections covered in this reference include: 22 | 23 | - [Installation Steps](/references/developer-app/install/ios) 24 | - [Previewing an app](/references/developer-app/previewing-app) 25 | - [Supported Gestures](/references/developer-app/gestures) 26 | - [Updating PhoneGap Developer Version](/references/developer-app/update-version) 27 | - [Debugging](/references/developer-app/debugging) 28 | - [Custom Builds](/references/developer-app/custom-build/ios) 29 | - [FAQ/Troubleshoot](/references/developer-app/troubleshoot-faq) 30 | -------------------------------------------------------------------------------- /docs/3-references/developer-app/1-install/1-ios.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Installation 3 | url: references/developer-app/install/ios 4 | layout: subpage 5 | tabs: 6 | - label: iOS 7 | url: references/developer-app/install/ios 8 | - label: Android 9 | url: references/developer-app/install/android 10 | - label: Windows Phone 11 | url: references/developer-app/install/win 12 | --- 13 | 14 | 1. The PhoneGap Developer App is not currently available in the iOS App Store. It is possible to install build and install it yourself. [Details Here](https://blog.phonegap.com/update-on-the-phonegap-developer-app-ios-99e07e3309dd) 15 | 16 | 1. Once installed, tap the PhoneGap Developer app icon from your home screen you will be presented with the following screen: 17 | 18 | PhoneGap Developer App, iOS 19 | -------------------------------------------------------------------------------- /docs/3-references/developer-app/1-install/2-android.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Installation 3 | url: references/developer-app/install/android 4 | layout: subpage 5 | tabs: 6 | - label: iOS 7 | url: references/developer-app/install/ios 8 | - label: Android 9 | url: references/developer-app/install/android 10 | - label: Windows Phone 11 | url: references/developer-app/install/win 12 | --- 13 | 14 | 1. From an Android device, tap the Google Play Store icon from the home screen and search *PhoneGap Developer*. Alternatively, visit [this link](https://play.google.com/store/apps/details?id=com.adobe.phonegap.app) to go directly to it. 15 | 16 | 1. Once installed, tap the PhoneGap Developer app icon from your home screen and you will be presented with the following screen: 17 | 18 | Developer App, Android 19 | -------------------------------------------------------------------------------- /docs/3-references/developer-app/1-install/3-win.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Installation 3 | url: references/developer-app/install/win 4 | layout: subpage 5 | tabs: 6 | - label: iOS 7 | url: references/developer-app/install/ios 8 | - label: Android 9 | url: references/developer-app/install/android 10 | - label: Windows Phone 11 | url: references/developer-app/install/win 12 | --- 13 | 14 | 1. From a Windows mobile device, tap the Windows Store icon from the home screen and search *PhoneGap Developer* (or visit [this link](https://www.microsoft.com/en-us/store/p/phonegap-developer/9wzdncrdfsj0)). 15 | 16 | 1. Once installed, tap the PhoneGap Developer app icon from your home screen and you will be presented with the following screen: 17 | 18 | Developer App, Windows Phone 19 | -------------------------------------------------------------------------------- /docs/3-references/developer-app/2-previewing-app.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Preview an App 3 | url: references/developer-app/previewing-app 4 | layout: subpage 5 | --- 6 | 7 | The PhoneGap Developer app is used to preview apps on your devices without the need for SDK's or compiling code. It's paired with your PhoneGap app being served by either the PhoneGap Desktop or the PhoneGap CLI on your local webserver. 8 | 9 | The following steps can be taken to preview your apps on your mobile device using the PhoneGap Developer app. 10 | 11 |
Double check to ensure you're running your device and computer on the same network before continuing.
12 | 13 | ## Steps 14 | 15 | 1. From your computer, *serve* the app you want to preview on your mobile device using either [PhoneGap Desktop](/getting-started/4-preview-your-app/desktop) or the [PhoneGap CLI](/getting-started/4-preview-your-app/cli) and note the IP address. 16 | 17 | 1. Open the **PhoneGap Developer** app installed on your mobile device, enter the IP address noted above and tap **Connect**. 18 | 19 |
**NOTE:** Tap directly on the server address displayed in the terminal screen of the PhoneGap Developer app and change it to yours. The value filled in by default is only a sample.
20 | 21 | PhoneGap Developer App, iOS 22 | 23 | 1. You should see status messages that the app is being `DOWNLOADED` and `EXTRACTED` followed by a `SUCCESS` message. If you receive an error of any kind, double check to make sure you are connected to the same network on both your device and computer. Check the [issue tracker](https://github.com/phonegap/phonegap-app-developer/issues) or [PhoneGap Google Groups](https://groups.google.com/forum/#!forum/phonegap) list for further help. 24 | 25 | Developer App, connection success 26 | 27 | 1. Once the PhoneGap Developer app connects to the IP address where your project is being served, it will load and display your application as shown below: 28 | 29 | Developer App, preview 30 | 31 | ## Video Example 32 | 33 |
34 | 35 |
36 | -------------------------------------------------------------------------------- /docs/3-references/developer-app/3-gestures.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Gestures 3 | url: references/developer-app/gestures 4 | layout: subpage 5 | --- 6 | 7 | There are a couple of supported gestures you should be aware of when using the PhoneGap Developer app. 8 | 9 | ## 3 Finger Tap 10 | 11 | ![3-finger Tap](/images/three-finger-tap.png) A 3-finger tap gesture will return you back to the home screen if you want to connect to a new IP address. 12 | 13 | ## 4 Finger Tap 14 | 15 | ![4-finger Tap](/images/four-finger-tap.png) 16 | A 4-finger tap gesture will cause the current application to refresh. The PhoneGap Developer app will automatically load any changes made but a forced refresh can be done with this gesture as needed. 17 | -------------------------------------------------------------------------------- /docs/3-references/developer-app/4-update-version.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Update Version 3 | url: references/developer-app/update-version 4 | layout: subpage 5 | --- 6 | 7 | ## iOS 8 | 9 | 1. Open the iTunes App Store icon from the home screen on your device. 10 | 1. Tap the **Updates** button at the bottom of the screen 11 | 1. The list shown will indicate which apps have updates available and allow you to update PhoneGap Developer if a new version is available. 12 | 13 | ## Android 14 | 15 | 1. Open the Google Play Store by tapping on the icon from the home screen. 16 | 1. Hit the menu button (three lines) located at the top right hand side of the screen and select **My Apps**. 17 | 1. The list shown will indicate which apps have updates available and allow you to update PhoneGap Developer if a new version is available. 18 | 19 | ## Windows Phone 20 | 21 | 1. Open the Windows Store by tapping on the icon from the home screen. 22 | 1. Tap the 3 dots menu on the lower right, then choose *settings* from the drop-down. 23 | 1. Look for the App updates section and tap on the switch next to **Update apps automatically** to allow auto-update for all of your apps. Otherwise click the **check for updates** button and install the latest update if a new version is available. 24 | -------------------------------------------------------------------------------- /docs/3-references/developer-app/6-custom-build/win-custom-build.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Custom Build 3 | url: references/developer-app/custom-build/win 4 | layout: subpage 5 | tabs: 6 | - label: iOS 7 | url: references/developer-app/custom-build/ios 8 | - label: Windows Phone 9 | url: references/developer-app/custom-build/win 10 | --- 11 | 12 | ## Steps 13 | 14 | 1. Open the command line application and clone the [PhoneGap Developer app repo](https://github.com/phonegap/phonegap-app-developer) with the following command: 15 | 16 | ```bash 17 | C:\> git clone https://github.com/phonegap/phonegap-app-developer.git 18 | ``` 19 | 20 | 1. Ensure you change into the newly created project folder: 21 | 22 | ```bash 23 | C:\> cd /phonegap-app-developer 24 | ``` 25 | 26 | 1. Next, `cd` into the `www` folder (`/phonegap-app-developer/www`) and open the **config.xml** file. Modify the `id` attribute to set your own unique apo bundle id within the root `widget` element. 27 | 28 | ```xml 29 | 30 | 31 | ``` 32 | 33 | 1. Run the `build` command for the Win platform you're targeting on the command line in the root of the project: 34 | 35 | ```bash 36 | C:\> phonegap build wp8 37 | ``` 38 | 39 | 1. Once you've tested the app from your custom build locally on your Windows device and are ready to package for distribution, add the `release` flag: 40 | 41 | C:\> phonegap build wp8 --release 42 | 43 | Your newly built *.xap app bundle will be created in the platforms folder under **phonegap-app-developer/platforms/wp8/Bin/Release/.xap** 44 | 45 | ## Video Demo 46 | 47 | In this short video we are running a locally built version of the PhoneGap Developer app on a Windows Phone with the addition of a 3rd party Social Sharing plugin built into it for sending text messages and some visual updates to the color and label of the wrapper to show that it's a custom build. 48 | 49 |
50 | 51 |
52 | -------------------------------------------------------------------------------- /docs/3-references/phonegap-cli/0-index.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: PhoneGap CLI 3 | url: references/phonegap-cli 4 | layout: subpage 5 | --- 6 | 7 | ## Overview 8 | 9 | The PhoneGap CLI provides a command line interface for creating PhoneGap apps as an alternative to using the [PhoneGap Desktop](/references/desktop-app) application. The PhoneGap CLI was the main tool used for creating PhoneGap apps prior to PhoneGap Desktop and contains additional features over the PhoneGap Desktop for building, running and packaging PhoneGap applications for multiple platforms. The use cases for the PhoneGap CLI will vary depending on the user and level they want to use it: 10 | 11 | 1. Paired with the PhoneGap Developer App 12 | 1. Paired with PhoneGap Build 13 | 1. Standalone 14 | 15 | More details about these use cases can be found in the [Installation guide](/references/phonegap-cli/install). 16 | 17 | ## Supported Platforms 18 | 19 | The PhoneGap CLI is supported on Mac and Windows. 20 | 21 | ## Guide Sections 22 | 23 | The sections covered in this reference include: 24 | 25 | - [Installing the CLI](/references/phonegap-cli/install) 26 | - [Help Options](/references/phonegap-cli/help) 27 | - [Creating an app](/references/phonegap-cli/create) 28 | - [Use with PhoneGap Build](/references/phonegap-cli/remote-usage) 29 | - [Serving an App](/references/phonegap-cli/serve) 30 | - [Using Templates](/references/phonegap-cli/templates) 31 | - [Cordova-specific Commands](/references/phonegap-cli/cordova) 32 | - [Updating CLI Version](/references/phonegap-cli/update) 33 | - [Sending Push Notifications](/references/phonegap-cli/push) 34 | 35 |
**NOTE:** The PhoneGap CLI is built as a layer on top of the Apache Cordova CLI, so any command that can be used in Cordova 36 | is also supported by the PhoneGap CLI. This guide will detail the *additional* features that distinguish the PhoneGap CLI from the Cordova CLI and should be used along with the Cordova CLI Reference. For more details on the difference between PhoneGap and Apache Cordova, check out this page.
37 | -------------------------------------------------------------------------------- /docs/3-references/phonegap-cli/2-create.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Create an App 3 | url: references/phonegap-cli/create 4 | layout: subpage 5 | --- 6 | 7 | Create a new application project at the provided path. You can optionally specify a *name* and *package ID* via the options parameters listed below, or configure it in the **config.xml** file after project creation. 8 | 9 | ## Usage 10 | 11 | ```bash 12 | phonegap create [options] [id [name [config]]] 13 | ``` 14 | 15 | You can specify some options when creating your project, including a template to use as a base project or an existing project to copy from or symbolically link to on your hard drive. Use the `template list` command to view the templates currently available. 16 | 17 | ## Options 18 | 19 | ```bash 20 | --name, -n application name (default: "Hello World") 21 | --id, -i package name (default: "com.phonegap.hello-world") 22 | --template create app using an existing app template 23 | --copy-from, -src create project using a copy of the www folder from an existing project 24 | --link-to symlink/shortcut to the www folder of another project without copying 25 | ``` 26 | 27 | ### Config Parameter 28 | 29 | The `[config]` parameter allows you to pass a JSON string with configuration parameters some plugins may specifically rely on. They are injected into the `/.cordova/config.json` file. 30 | 31 | ## Examples 32 | 33 | ```bash 34 | $ phonegap create path/to/myApp 35 | $ phonegap create path/to/myApp "com.example.app" "My App" 36 | $ phonegap create path/to/myApp --id "com.example.app" --name "My App" 37 | $ phonegap create path/to/myApp --template hello-world 38 | $ phonegap create path/to/myApp --copy-from ../myOtherApp 39 | $ phonegap create path/to/myApp -src ../myOtherApp 40 | $ phonegap create path/to/myApp --id "com.example.app" --name "My App" --copy-from ~/myOtherApp 41 | $ phonegap create path/to/myApp --link-to ../myOtherApp 42 | ``` 43 | 44 |
**Note:** Check out the templates guide for more details on how to create applications based on templates.
45 | -------------------------------------------------------------------------------- /docs/3-references/phonegap-cli/3-serve.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Serve an App 3 | url: references/phonegap-cli/serve 4 | layout: subpage 5 | --- 6 | 7 | The `serve` command is used to start up a local web server to host the application for the PhoneGap Developer app (or any browser) to consume. 8 | 9 | ## Usage 10 | 11 | ```bash 12 | phonegap serve [options] 13 | ``` 14 | 15 | ## Options 16 | 17 | Some options are available for specifically setting the port to use, to enable or disable auto reload, or to setup a local tunnel for public access as shown below. 18 | 19 | ```bash 20 | --port, -p port for web server (default: 3000) 21 | --autoreload enable app refresh on file changes (default: true) 22 | --no-autoreload disable app refresh on file changes 23 | --browser enable desktop browser support (default: true) 24 | --no-browser disable desktop browser support 25 | --localtunnel enable a local tunnel for public access (default: false) 26 | ``` 27 | 28 | ## Alias 29 | 30 | ```bash 31 | $ phonegap app 32 | ``` 33 | 34 | ## Examples 35 | 36 | ```bash 37 | $ phonegap serve 38 | $ phonegap serve --port 1337 39 | $ phonegap serve --no-autoreload 40 | $ phonegap serve --browser 41 | $ phonegap serve --no-browser 42 | $ phonegap serve --localtunnel 43 | $ phonegap app 44 | ``` 45 | -------------------------------------------------------------------------------- /docs/3-references/phonegap-cli/4-update.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Update Version 3 | url: references/phonegap-cli/update 4 | layout: subpage 5 | --- 6 | 7 | ## Manually Update 8 | 9 | To update your PhoneGap CLI to the latest version, run the following command: 10 | 11 | ```bash 12 | $ npm install -g phonegap 13 | ``` 14 | 15 |
**NOTE:** If you get an `Error: EACCES` when running any of the commands here, try prefixing it with `sudo`, such as: `$ sudo npm install -g phonegap`
16 | 17 | ## Update Available Notification 18 | 19 | The CLI will also display a notification when any command is used if an update is available: 20 | 21 | ```bash 22 | $ phonegap -v 23 | 6.0.3 24 | 25 | --------------------------------------- 26 | | | 27 | | Update available 6.0.3 -> 6.0.4 | 28 | | Run npm i -g phonegap to update | 29 | | | 30 | --------------------------------------- 31 | ``` 32 | 33 |
**NOTE:** This notification will only be displayed once every 24 hours.
34 | 35 | To disable the update notifier, you can do one of the following: 36 | 37 | 1. Use the `--no-update-notifer` flag with any PhoneGap command. 38 | * For example, `phonegap run ios --no-update-notifier` 39 | 1. Disable the update notifier by altering the configuration file. 40 | 1. Open `~/.config/configstore/update-notifier-phonegap.json` 41 | 1. Set the property `"optOut": true` 42 | -------------------------------------------------------------------------------- /docs/3-references/phonegap-cli/5-push.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Push Notifications 3 | url: references/phonegap-cli/push 4 | layout: subpage 5 | --- 6 | 7 | The `push` command is used to send push notifications for the PhoneGap Developer app to consume. Available since version 6.2.0. 8 | 9 | ## Usage 10 | 11 | ```bash 12 | phonegap push [options] 13 | ``` 14 | 15 | ## Options 16 | 17 | Some options are available for specifically setting the device to send to, the type of service to use and the data to send to the application. 18 | 19 | ```bash 20 | --deviceID device ID (required) 21 | --service target service, "gcm", "apns" or "apns-sandbox" (required) 22 | --payload JSON object to be sent via push service (required) 23 | ``` 24 | 25 | ### Examples 26 | 27 | ```bash 28 | $ phonegap push --deviceID APA91bE1MmeTc92igNoi5OkDWUV --service gcm --payload '{ "data": { "title": "Hello", "message": "World"} }' 29 | $ phonegap push --deviceID APA91bE1MmeTc92igNoi5OkDWUV --service apns --payload '{ "aps": { "alert": "Hello World", "badge": 5 } }' 30 | ``` 31 | -------------------------------------------------------------------------------- /docs/3-references/phonegap-cli/6-templates.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Templates 3 | url: references/phonegap-cli/templates 4 | layout: subpage 5 | --- 6 | 7 | Use the `template list` command to get a listing of the templates available for creating your applications with the `create` command. Some templates available include a `blank` template, a `hello-world` template or one based on jQuery Mobile. Once you choose a template, specify it using the `--template` (or the alias `--recipe`) option followed by the name of the template. 8 | 9 | ## Usage 10 | 11 | ```bash 12 | phonegap template list 13 | ``` 14 | 15 | ## Examples 16 | 17 | ```bash 18 | $ phonegap template list 19 | $ phonegap create myApp --template hello-world 20 | $ phonegap create myApp --recipe hello-world 21 | ``` 22 | -------------------------------------------------------------------------------- /docs/3-references/phonegap-cli/7-remote-usage.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Remote Usage 3 | url: references/phonegap-cli/remote-usage 4 | layout: subpage 5 | --- 6 | 7 | The PhoneGap `remote` commands are used for executing commands against the PhoneGap Build service in the cloud rather than relying on a locally installed SDK for each platform. 8 | 9 | ## Usage 10 | 11 | ```bash 12 | phonegap remote [command] 13 | ``` 14 | 15 | Use the commands below in conjunction with the `remote` command to perform the specific actions outlined below. 16 | 17 | ## Commands 18 | 19 | ```bash 20 | login login to PhoneGap Build (requires an account and your credentials) 21 | logout logout of PhoneGap Build 22 | build build a specific platform 23 | install install a specific platform (returns a generated QR code in the terminal) 24 | run build and install a specific platform 25 | ``` 26 | 27 | ## Examples 28 | 29 | ```bash 30 | $ phonegap remote login 31 | $ phonegap remote build ios 32 | $ phonegap remote install android 33 | $ phonegap remote run ios 34 | $ phonegap remote logout 35 | ``` 36 | 37 |
**NOTE:** You'll need to have an existing PhoneGap Build account to use these commands. You'll be prompted to enter your credentials after running the `$ phonegap remote login` command. An Adobe ID can be used as well.
38 | 39 |
**TIP:** The `phonegap remote run` command will execute both the `build` and `install` commands automatically and is the quickest path to building your app with the PhoneGap Build cloud service. The result is a QR code that can be scanned by your mobile device directly from the terminal to install the app.
40 | -------------------------------------------------------------------------------- /docs/3-references/phonegap-cli/8-cordova.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Cordova Commands 3 | url: references/phonegap-cli/cordova 4 | layout: subpage 5 | --- 6 | 7 | There are some cases where the PhoneGap CLI and Cordova CLI have similar commands but behave differently. The PhoneGap `serve` command is a good example of this. Another difference is found when using the `phonegap build` or `phonegap run` commands versus the Cordova CLI equivalent. The PhoneGap CLI version will automatically add the platform target if it doesn't already exist. 8 | 9 | When you want to specifically run the `cordova` version of a command, you can add `cordova` as the prefix to that command. The Cordova CLI version of a command will automatically be used for any commands that are not enhanced by the PhoneGap CLI without having to specifically type `cordova`. 10 | 11 | ## Usage 12 | 13 | ```bash 14 | phonegap cordova 15 | ``` 16 | 17 | ## Example 18 | 19 | ```bash 20 | $ phonegap cordova serve 21 | ``` 22 | -------------------------------------------------------------------------------- /docs/3-references/phonegap-cli/9-help.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Help Options 3 | url: references/phonegap-cli/help 4 | layout: subpage 5 | --- 6 | 7 | You can use the PhoneGap CLI to get general or specific help in a number of ways. You can use it as a command with any combination of other commands to list out help for that command or use the `-h` or `--h` options before or after any command. 8 | 9 | ## Usage 10 | 11 | ```bash 12 | phonegap help Displays the full help text 13 | phonegap help Displays help text for a specific command 14 | phonegap help Displays help text for a specific command 15 | phonegap --help Displays help text for a specific command 16 | phonegap -h Displays help text for a specific command 17 | ``` 18 | 19 | ## Examples 20 | 21 | ```bash 22 | $ phonegap help create 23 | $ phonegap create help 24 | $ phonegap create --help 25 | $ phonegap create -h 26 | ``` 27 | -------------------------------------------------------------------------------- /docs/3-references/plugin-apis.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Plugin APIs 3 | url: references/plugin-apis 4 | layout: subpage 5 | --- 6 | 7 | ## Core Plugins 8 | 9 | The most current version of the Cordova Core Plugin APIs are found in their respective GitHub repositories linked to below: 10 | 11 | - [Battery Status](https://github.com/apache/cordova-plugin-battery-status) 12 | - [Camera](https://github.com/apache/cordova-plugin-camera) 13 | - [Contacts](https://github.com/apache/cordova-plugin-contacts) 14 | - [Device Info](https://github.com/apache/cordova-plugin-device) 15 | - [Device Motion (accelerometer)](https://github.com/apache/cordova-plugin-device-motion) 16 | - [Device Orientation (compass)](https://github.com/apache/cordova-plugin-device-orientation) 17 | - [Dialogs (notification)](https://github.com/apache/cordova-plugin-dialogs) 18 | - [File](https://github.com/apache/cordova-plugin-file) 19 | - [File Transfer](https://github.com/apache/cordova-plugin-file-transfer) 20 | - [Geolocation](https://github.com/apache/cordova-plugin-geolocation) 21 | - [Globalization](https://github.com/apache/cordova-plugin-globalization) 22 | - [InAppBrowser](https://github.com/apache/cordova-plugin-inappbrowser) 23 | - [Media](https://github.com/apache/cordova-plugin-media) 24 | - [Media Capture](https://github.com/apache/cordova-plugin-media-capture) 25 | - [Network Information](https://github.com/apache/cordova-plugin-network-information) 26 | - [Splash Screen](https://github.com/apache/cordova-plugin-splashscreen) 27 | - [Status Bar](https://github.com/apache/cordova-plugin-statusbar) 28 | - [Whitelist](https://github.com/apache/cordova-plugin-whitelist) 29 | - [Vibration](https://github.com/apache/cordova-plugin-vibration) 30 | 31 | ## General Plugin Discovery 32 | 33 | You can also find a full directory of Cordova Plugins on the [Cordova Plugin page](https://cordova.apache.org/plugins/) 34 | -------------------------------------------------------------------------------- /docs/3-references/plugin-apis/0-index.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | write: false 3 | --- 4 | -------------------------------------------------------------------------------- /docs/3-references/plugin-apis/battery-status.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | write: false 3 | --- 4 | -------------------------------------------------------------------------------- /docs/3-references/plugin-apis/camera.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | write: false 3 | --- 4 | -------------------------------------------------------------------------------- /docs/3-references/plugin-apis/console.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | write: false 3 | --- 4 | -------------------------------------------------------------------------------- /docs/3-references/plugin-apis/contacts.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | write: false 3 | --- 4 | -------------------------------------------------------------------------------- /docs/3-references/plugin-apis/device-motion-accelerometer.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | write: false 3 | --- 4 | -------------------------------------------------------------------------------- /docs/3-references/plugin-apis/device-orientation.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | write: false 3 | --- 4 | -------------------------------------------------------------------------------- /docs/3-references/plugin-apis/device.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | write: false 3 | --- 4 | -------------------------------------------------------------------------------- /docs/3-references/plugin-apis/dialogs.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | write: false 3 | --- 4 | -------------------------------------------------------------------------------- /docs/3-references/plugin-apis/file-sytem.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | write: false 3 | --- 4 | -------------------------------------------------------------------------------- /docs/3-references/plugin-apis/file-transfer.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | write: false 3 | --- 4 | -------------------------------------------------------------------------------- /docs/3-references/plugin-apis/geolocation.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | write: false 3 | --- 4 | -------------------------------------------------------------------------------- /docs/3-references/plugin-apis/globalization.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | write: false 3 | --- 4 | -------------------------------------------------------------------------------- /docs/3-references/plugin-apis/in-app-browser.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | write: false 3 | --- 4 | -------------------------------------------------------------------------------- /docs/3-references/plugin-apis/media-capture.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | write: false 3 | --- 4 | -------------------------------------------------------------------------------- /docs/3-references/plugin-apis/network-information.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | write: false 3 | --- 4 | -------------------------------------------------------------------------------- /docs/3-references/plugin-apis/splashscreen.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | write: false 3 | --- 4 | -------------------------------------------------------------------------------- /docs/3-references/plugin-apis/status-bar.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | write: false 3 | --- 4 | -------------------------------------------------------------------------------- /docs/3-references/plugin-apis/vibration.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | write: false 3 | --- 4 | -------------------------------------------------------------------------------- /docs/4-phonegap-build/0-index.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: PhoneGap Build 3 | url: phonegap-build 4 | layout: subpage 5 | --- 6 | 7 |

PhoneGap Build is a cloud service for compiling PhoneGap applications. These docs will get you started, but if your question isn't answered here you can always check out the community forum.

8 | 9 | 19 | 20 | ## _ _ 21 | -------------------------------------------------------------------------------- /docs/4-phonegap-build/0-overview.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Overview 3 | url: phonegap-build/overview 4 | layout: subpage 5 | expand: build 6 | --- 7 | ## PhoneGap Build is a cloud service for compiling PhoneGap applications. 8 | 9 | Adobe PhoneGap provides a way for users to create mobile applications using technologies such as HTML, CSS, and Javascript. Applications created with PhoneGap can be distributed to various vendor app stores (example: Apple iOS App Store) and installed on a end-user's device like any other native application. Each vendor provides a different toolchain, and each PhoneGap release is compatible with a specific set of tools. This is where PhoneGap Build comes into help. 10 | 11 | ## Here are some of the benefits PhoneGap Build provides: 12 | 13 | ### Managed Compilation and Signing (No SDKs) 14 | 15 | Local development involves installing and maintaining multiple native SDKs as well as the Cordova/PhoneGap SDK. PhoneGap Build takes this headache away! Get app-store ready apps without the headache of maintaining native SDKs. PhoneGap Build will always build against the required SDK for the platform you are targeting. 16 | 17 | ### Multiple Supported Platforms 18 | 19 | Target iOS, Android, Windows (Phone) all with a single codebase. As a web-service, PhoneGap Build may be used from any OS. 20 | 21 | ### Work With Your Team 22 | 23 | Work collaboratively by adding team members and create roles within your PhoneGap Build projects. 24 | 25 | ### Quicker Development Cycle 26 | 27 | Use Hydration to get faster debug and build cycles. With Hydration, updates to your application be pushed directly to your testers' previously installed apps, ensuring everyone is working on the most up-to-date version. 28 | -------------------------------------------------------------------------------- /docs/4-phonegap-build/2-configuring/access-elements.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Access Elements 3 | url: phonegap-build/configuring/access-elements 4 | layout: subpage 5 | --- 6 | 7 |
8 | As of Cordova iOS 4.x, Cordova Android 4.x, and Cordova Windows 4.x, whitelist management was moved from the core Cordova project to the `cordova-whitelist-plugin`, including the addition of the `allow-navigation` and `allow-intent` elements. You must add this plugin to enable and restrict network access in your application. 9 | 10 | ```xml 11 | 12 | ``` 13 | 14 | [See the cordova-whitelist-plugin repository for up to date documentation](https://github.com/apache/cordova-plugin-whitelist). 15 |
16 | -------------------------------------------------------------------------------- /docs/4-phonegap-build/3-signing/1-overview.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Signing Overview 3 | url: phonegap-build/signing/overview 4 | layout: subpage 5 | tabs: 6 | - label: Overview 7 | url: phonegap-build/signing/overview 8 | - label: iOS 9 | url: phonegap-build/signing/ios 10 | - label: Android 11 | url: phonegap-build/signing/android 12 | - label: Windows 13 | url: phonegap-build/signing/windows 14 | --- 15 | 16 | In order to submit your PhoneGap apps to the app stores, they need to be signed. iOS apps must be signed with a Developer Certificate to be built at all; they must be signed with a Distributions Certificate to be submitted to the App store. Android and Windows apps can be built and run without signing during development, but must be signed for distribution. This process varies across platforms, see the individual platform tabs for details. 17 | 18 |
**Note**: it is Phonegap Build's policy not to retrieve signing keys for users, for legal reasons. Please back them up.
19 | -------------------------------------------------------------------------------- /docs/4-phonegap-build/3-signing/3-android.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Android Signing 3 | url: phonegap-build/signing/android 4 | layout: subpage 5 | tabs: 6 | - label: Overview 7 | url: phonegap-build/signing/overview 8 | - label: iOS 9 | url: phonegap-build/signing/ios 10 | - label: Android 11 | url: phonegap-build/signing/android 12 | - label: Windows 13 | url: phonegap-build/signing/windows 14 | --- 15 | 16 | - [Generating a private key](#generating-a-private-key) 17 | - [Submitting your key to build](#submitting-your-key-to-build) 18 | - [Unlocking your key](#unlocking-your-key) 19 | 20 |
**Note**: it is Phonegap Build's policy not to retrieve signing keys for users, for legal reasons. Back them up.
21 | 22 | *** 23 | 24 | ## Generating a private key 25 | 26 | 1. [Download and install Java](http://www.java.com/en/download/index.jsp). 27 | 28 | 1. [Set Java_Home directory](http://docs.oracle.com/cd/E19182-01/820-7851/inst_cli_jdk_javahome_t/index.html). 29 | 30 | 1. Open the command prompt (cmd.exe) as an Administrator, then Run the following command: `$ keytool -genkey -v -keystore [keystore_name].keystore -alias [alias_name] -keyalg RSA -keysize 2048 -validity 10000` 31 | 32 | 1. Keytool will ask for keystore password. Enter password and confirm: 33 | 34 | ![Keystore Password](/images/phonegap-build/android_keystore_pass.png) 35 | 36 | 1. Next, keytool will ask for additional information. Supply appropriately: 37 | 38 | ![Keystore Password 2](/images/phonegap-build/additional_info.png) 39 | 40 | 1. Next, keytool will ask password for Alias. Return if it's the same as keystore password. Othewise enter password and confirm: 41 | 42 | ![Alias password](/images/phonegap-build/alias_password.png) 43 | 44 | 1. Your signing key is now ready to submit: 45 | 46 | ![Submit signing key](/images/phonegap-build/keystore_ready.png) 47 | 48 | ## Submitting your key to Build 49 | 50 | Go to your Account > Edit Setting > Signing Key's tab. 51 | 52 | ![Edit signing keys](/images/phonegap-build/edit_account_settings.png) 53 | 54 | Click 'add a key...', ensuring you use the same alias used when you generated your key. 55 | 56 | ![Add info](/images/phonegap-build/add_key.png) 57 | 58 | ## Unlocking your key 59 | 60 | Go to your Account > Edit Setting > Signing Key's tab: 61 | 62 | ![Signing Keys](/images/phonegap-build/edit_account_settings.png) 63 | 64 | Click unlock button and supply the the certificate password (from step #6 above) and the keystore password (from step #4 above) 65 | 66 | ![Unlocking](/images/phonegap-build/unlock_key.png) 67 | 68 | Lastly, either set your key to be default using the checkbox in the keys list, or in your individual application's details, select the key you've uploaded and unlocked. 69 | 70 | *** 71 | 72 | [More info](http://developer.android.com/tools/publishing/app-signing.html#cert) 73 | -------------------------------------------------------------------------------- /docs/4-phonegap-build/3-signing/4-windows.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Windows Signing 3 | url: phonegap-build/signing/windows 4 | layout: subpage 5 | tabs: 6 | - label: Overview 7 | url: phonegap-build/signing/overview 8 | - label: iOS 9 | url: phonegap-build/signing/ios 10 | - label: Android 11 | url: phonegap-build/signing/android 12 | - label: Windows 13 | url: phonegap-build/signing/windows 14 | --- 15 | 16 | - [Windows 10 (Universal) Signing](#windows): `phonegap-version cli-6.1.1` and greater 17 | - [Windows Phone 8.0/8.1 Signing](#winphone8): `phonegap-version cli-6.0.0` and below 18 | 19 | 20 | 21 | ## Windows 10 (Universal) Signing 22 | 23 | Windows builds have a slightly more involved signing process than the previous Windows Phone Publisher ID method, which was a simple GUID setting. A .pfx certificate file is now required to sign your app and distribute it to the App Store. [This article on MSDN](https://docs.microsoft.com/en-us/windows/uwp/packaging/create-certificate-package-signing) explains how to create a PFX store file. Ensure the Subject Name of your signing certificate matches the Windows Publisher ID from your [Microsoft Developer Account](https://developer.microsoft.com/en-us/dashboard/account/management). 24 | 25 | Go to your [PhoneGap Build Account Settings](https://build.phonegap.com/people/edit), select the **Signing Keys** tab, upload your **Windows 10** pfx key and unlock it, and select it when building your application. 26 | 27 | ### In addition: 28 | 29 | 1. The `author` field in your `config.xml` is required and must match the Publisher Display Name from *Windows Dev Center -> Account Settings*, i.e: 30 | 31 | ```xml 32 | Adobe Systems Canada Inc 33 | ``` 34 | 35 | 1. A new config.xml preference `windows-identity-name` has been introduced to set the App Idenity Name in your App Manifest. This preference must match the App Identity Name from your *Windows Dev Center Account -> App Management -> App Identity*: 36 | 37 | ```xml 38 | 39 | ``` 40 | 41 | 42 | 43 | ## Windows Phone 8.0/8.1 Signing 44 | 45 | 1. Log into the [Windows Dev Center](http://dev.windows.com), and click **Dashboard** in the top right. 46 | 1. Click **Account Settings**. 47 | 1. Copy the **Windows Publisher ID** field. 48 | 1. Add the Publisher ID to your Signing Keys in your [PhoneGap Build Account Settings](https://build.phonegap.com/people/edit). 49 | 1. Build your app using the newly added Windows Publisher ID, selected in a dropdown in your App details. 50 | 1. Upload the resulting xap/appx file to the Windows Dev Center. 51 | -------------------------------------------------------------------------------- /docs/4-phonegap-build/4-tools/0-index.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Tools 3 | url: phonegap-build/tools 4 | layout: subpage 5 | --- 6 | 7 | There are a number of tools available to PhoneGap Build users which help streamline the app development process. For debugging, Chrome and Safari both provide the ability to connect their Developer tools to any connected device and debug webviews, including PhoneGap webviews. Additionaly PhoneGap Build provides the Hydration tool, which allows users to deploy their app web during development without reinstalling the app. Lastly, Collaboration tools on PhoneGap Build make it easier for distributed development teams to collaborate on individual apps. 8 | 9 | 15 | -------------------------------------------------------------------------------- /docs/4-phonegap-build/4-tools/1-debugging.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Debugging 3 | url: phonegap-build/tools/debugging 4 | layout: subpage 5 | --- 6 | 7 | PhoneGap is an embedded webview, and both Android and iOS provide tools for debugging web applications running on mobile devices. These tools allow you to inspect HTML and CSS, as well as run and debug Javascript code. 8 | 9 | - [**iOS**: Safari Web Inspector](#safari-web-inspector) 10 | - [**Android**: Chrome Developer Tools](#chrome-developer-tools) 11 | - [**Windows Phone**: Visual Studio Web Debugging Tools](#visual-studio-debug-tools) 12 | - [Weinre Remote Debugger](/phonegap-build/tools/weinre) 13 | - [Debugging Crashes and Native Exceptions](#crashes-and-native-exceptions) 14 | 15 | ## Safari Web Inspector 16 | 17 | Steps: 18 | 19 | 1. Connect your iOS device to your computer 20 | 1. Launch Safari 21 | 1. Launch your PhoneGap application on your iOS Device 22 | 1. Open Safari's **Develop** menu, and you should see your iOS Device listed. 23 | 1. Select your PhoneGap Webview listed under your device. 24 | 25 | More info can be found on the [Apple Developer Website](https://developer.apple.com/safari/tools/). 26 | 27 | ## Chrome Developer Tools 28 | 29 | 1. [Ensure Developer Options are enabled on your Android test device](http://developer.android.com/tools/device.html#developer-device-options). 30 | 1. Launch Google Chrome Web Browser. 31 | 1. Navigate to chrome://inspect in Chrome. 32 | 1. Select your PhoneGap Application running on your device, and the Developer tools will launch. 33 | 34 | ## Visual Studio Debug Tools 35 | 36 | [See the Microsoft Blog Post](https://blogs.msdn.microsoft.com/visualstudioalm/2014/04/04/diagnosing-mobile-website-issues-on-windows-phone-8-1-with-visual-studio/). 37 | 38 | ## Crashes and Native Exceptions 39 | 40 | If your PhoneGap application is crashing or freezing, or if the Javascript Console shows no errors, you may need to use the Native SDKs in order to debug your application: 41 | 42 | ### iOS 43 | 44 | - [Debugging Deployed iOS Apps](https://developer.apple.com/library/ios/qa/qa1747/_index.html) 45 | - There may also be third party applications which allow you to view your **iOS Device Console**. 46 | 47 | ### Android 48 | 49 | - Download and install the Android SDK. Attach your device to your computer, and run `adb logcat` to view your device logs and watch for Exceptions. 50 | 51 | ### Windows Phone 52 | 53 | - See [Microsft Visual Studio](https://www.visualstudio.com/en-us/visual-studio-homepage-vs.aspx). 54 | -------------------------------------------------------------------------------- /docs/4-phonegap-build/4-tools/3-collaboration.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Collaboration 3 | url: phonegap-build/tools/collaboration 4 | layout: subpage 5 | --- 6 | 7 | Multple PhoneGap Build users may want to work simultaneously on the same application. This feature can be found in your app settings, under the *Collaboration* tab. 8 | 9 | Collaborators are invited via their email address. If a user account exists with the specified email, that user will be added to the application as a collaborator. Otherwise an email will be sent to the address inviting the user to sign up on PhoneGap Build. 10 | 11 | Two collaboration roles exist on PhoneGap Build: 12 | 13 | - *Developer*: may update the application code and rebuild the application. 14 | - *Tester*: may view the app and download application packages. 15 | 16 | Signing keys can be managed only by the owner of the application. 17 | 18 | ## Sharing 19 | 20 | In addition, sharing can be enabled on individual applications, allowing unauthenticated visitors to access your application. In your app settings, simply check the "Allow public sharing" checkbox. 21 | 22 | You can then share your app using the share url (`http://build.phonegap.com/apps/-app-id-/share`), accessible by clicking on the share icon located under your app QR code. -------------------------------------------------------------------------------- /docs/4-phonegap-build/5-developer-api/0-index.html.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Developer API 3 | url: phonegap-build/developer-api 4 | layout: subpage 5 | --- 6 | 7 | The PhoneGap Build API allows applications to use the PhoneGap Build web service to create, build, update, and download PhoneGap apps. It integrates easily into IDEs, shell scripts, app builders, and elsewhere. 8 | 9 | The core sections discussed in this documentation article are: 10 | 11 | - [Authentication Methods](oauth) 12 | - [The Read API](read) 13 | - [The Write API](write) 14 | 15 | Here are some additional notes on using the API. 16 | 17 | - [JSON](#json) 18 | - [JSONP](#jsonp) 19 | - [HATEOAS](#hateoas) 20 | 21 | ## JSON 22 | 23 | All successful requests return either a JSON-encoded string or a binary file. All requests that fail return a JSON-encoded string in the following form, with an appropriate status code: 24 | 25 | ```js 26 | { 27 | "error":"some error message" 28 | } 29 | ``` 30 | 31 | When using the API, check each returned status code; if it's not 200, check the error field on the parsed response, for example: 32 | 33 | ```js 34 | if (res.status != 200) 35 | console.log(JSON.parse(res.body).error) 36 | ``` 37 | 38 | As is standard in HTTP, a _4xx_ status indicates an error with the request, while a _5xx_ status indicates an server error. Contact PhoneGap's support forums if you get a 500 error, or an unexpected 400 error. 39 | 40 | ## JSONP 41 | 42 | JSONP access is available for PhoneGap Build developers: just add a `callback` parameter to your requests, and the JSONP response body is wrapped in that function: 43 | 44 | ```js 45 | $ curl https://build.phonegap.com/api/v1/me?auth_token=ASTRINGTOKEN&callback=exec 46 | exec({ 47 | "username":"alunny", 48 | "email":"andrew.lunny@nitobi.com" 49 | }) 50 | ``` 51 | 52 | This allows you to access the PhoneGap Build API using `