Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@capacitor/core

ionic-team1.2mMIT7.0.1TypeScript support: included

Capacitor: Cross-platform apps with JavaScript and the web

readme


⚡️ Cross-platform apps with JavaScript and the Web ⚡️


Capacitor lets you run web apps natively on iOS, Android, Web, and more with a single codebase and cross-platform APIs.

Capacitor provides a cross-platform API and code execution layer that makes it easy to call Native SDKs from web code and to write custom native plugins that your app may need. Additionally, Capacitor provides first-class Progressive Web App support so you can write one app and deploy it to the app stores and the mobile web.

Capacitor comes with a Plugin API for building native plugins. Plugins can be written inside Capacitor apps or packaged into an npm dependency for community use. Plugin authors are encouraged to use Swift to develop plugins in iOS and Kotlin (or Java) in Android.

Getting Started

Capacitor was designed to drop-in to any existing modern web app. Run the following commands to initialize Capacitor in your app:

npm install @capacitor/core @capacitor/cli
npx cap init

Next, install any of the desired native platforms:

npm install @capacitor/android
npx cap add android
npm install @capacitor/ios
npx cap add ios

New App?

For new apps, we recommend trying the Ionic Framework with Capacitor.

To begin, install the Ionic CLI (npm install -g @ionic/cli) and start a new app:

ionic start --capacitor

FAQ

What are the differences between Capacitor and Cordova?

In spirit, Capacitor and Cordova are very similar. Capacitor offers backward compatibility with a vast majority of Cordova plugins.

Capacitor and Cordova differ in that Capacitor:

  • takes a more modern approach to tooling and plugin development
  • treats native projects as source artifacts as opposed to build artifacts
  • is maintained by the Ionic Team 💙😊

See the docs for more details.

Do I need to use Ionic Framework with Capacitor?

No, you do not need to use Ionic Framework with Capacitor. Without the Ionic Framework, you may need to implement Native UI yourself. Without the Ionic CLI, you may need to configure tooling yourself to enable features such as livereload. See the docs for more details.

Contributing

See CONTRIBUTING.md.

Contributors

Made possible by the Capacitor community. 💖

changelog

Change Log

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

7.0.1 (2025-01-21)

Bug Fixes

7.0.0 (2025-01-20)

Note: Version bump only for package capacitor

7.0.0-rc.1 (2025-01-20)

Note: Version bump only for package capacitor

7.0.0-rc.0 (2024-12-20)

Note: Version bump only for package capacitor

7.0.0-beta.0 (2024-12-20)

Bug Fixes

  • cli: correct rimraf import (#7811) (0891624)
  • cli: update link to telemetry information (e922e2b)
  • ios: Make Bridge webView first responder (#7753) (77e4668)

Features

7.0.0-alpha.2 (2024-11-19)

Bug Fixes

  • cli: make Cordova plugins use same default kotlin version as Capacitor (#7752) (a4aeb55)

7.0.0-alpha.1 (2024-10-14)

Bug Fixes

  • android-template: prevent app restart on bluetooh keyboard changes (#7652) (200c7cb)
  • cli: replace app-store deprecated method on build (#7637) (942b108)
  • ios: fix retain cycle caused by CDVPluginManager (#7692) (02bdb3d)

Features

  • core: expose methodName via CAPPluginCall (#7641) (df109aa)
  • ios: JSValueEncoder/Decoder feature parity with JSONEncoder/Decoder (#7647) (410249b), closes #7576

6.1.2 (2024-08-07)

Bug Fixes

  • android: better cleaning of allowedOrigin url (#7607) (d123260)
  • http: pass original url as query param on the proxy url (#7527) (1da06e6)
  • support dependencies with ".swift" at the end of name (#7583) (ceee68a)

6.1.1 (2024-07-17)

Bug Fixes

  • android: Allow WebView to load blob urls (#7551) (0dca917)
  • android: javascript injection not working on urls with query (#7545) (57ce5c6)
  • android: send FormData on older devices (#7519) (de8b50d)
  • android: UTF-8 encode form data value (#7525) (a73ed31)
  • cli: enable cleartext for live reload (#7563) (e06648f)
  • http: handle UInt8Array on body (#7546) (cfb9ce1)
  • ios: make removeAllListeners accessible from javascript (#7566) (388a822)
  • ios: Match CapApp-SPM iOS version with project version (#7556) (df4dc9a)

6.1.0 (2024-06-11)

Bug Fixes

  • android: avoid crash if server url ends in / (#7426) (f8264cc)
  • cli: Avoid duplicate entries in packageClassList (#7470) (cca0b80)
  • cli: Run sync before updating gradle (#7497) (f27786e)
  • http: don't override readyState for non POST requests (#7488) (30c13a8)
  • ios: check if urlSchemeTask is stopped before calling its methods (#7482) (b32b5b1)

Features

6.0.0 (2024-04-15)

Bug Fixes

  • cli: Change Capacitor plugin files check (#7375) (fbfb778)
  • cli: Don't downgrade gradle version on migrate (#7385) (c79211e)
  • cli: Removing extra dash in android apk name flavor parsing (#7382) (3c411fd)
  • http: Add URLSearchParams support (#7374) (9367ecc)
  • http: prevent POST request from being proxied (#7395) (7b8c352)
  • secure cookies often are not set by the cookie plugin (#7261) (cda1886)

Features

  • cli: Support bun when running cap migrate (#7386) (3f96ff9)

6.0.0-rc.2 (2024-03-25)

Bug Fixes

  • cli: also generate packageClassList on copy (#7358) (865cceb)
  • cli: use correct pass signature for apksigner signing (#7365) (e4f8610)
  • http: change proxy url generation (#7354) (318c316)
  • inject cordova files if a cordova plugin is present (#7363) (ce9d505)
  • vue 3 log warning causes error on iOS (#6993) (87271e2)

6.0.0-rc.1 (2024-03-15)

Bug Fixes

  • android: handle http errors on the proxy (#7280) (cca3c80)
  • android: incorrect http url params encoding (#6586) (e9ddb0c)
  • android: let WebView handle errors (#7286) (286b694)
  • android: make JSInjector replace first <head> only (#6895) (93c8a8d)
  • android: prevent crash on script injection if the script is too long (#7308) (c9895e8)
  • android: Remove path from allowedOriginRules (#7293) (9eb565c)
  • cli: adjust SPM parameters for build and run commands (#7342) (02f8983)
  • cli: apkName for multi-dimensional flavors (#6704) (d7b23f2)
  • cli: Attempt to verify non-cjs modules exist if cjs resolution fails (#7310) (663e7b3)
  • cli: correct build path for non flavor builds (#7281) (0f9651d)
  • cli: Migrate variables to newer dependency versions (#7235) (aaf01ab)
  • cli: remove certificate file extension check on copy (#7240) (93a0044)
  • core: make 'content-type' header count for XMLHttpRequest patch (#7161) (26d7f68)
  • http: better handling of active requests and shutting down gracefully (5d294c9)
  • http: handle proxy urls with port (#7273) (514409a)
  • http: keep original URL properties on proxy (#7329) (cbb6407)
  • http: Make proxy work with Request objects (#7348) (7e68725)
  • http: route get requests through custom handler (#6818) (b853d06)
  • http: set port for proxy url (#7341) (a3059dc)
  • ios: Moves updateBinaryVersion call to the end of loadView. (#7226) (7724760)
  • ios: overwrite CORS headers on livereload (#7339) (0c8d69b)
  • spm: add product lines to Package.swift (#7278) (e45d60d)

Features

  • webview: add setServerAssetPath method (881235b)

6.0.0-rc.0 (2024-01-23)

Bug Fixes

  • android: don't proxy requests if no jsInjector (#7199) (7dc5585)
  • android: handle deprecation warnings (#7190) (06636d7)
  • cli: correctly build and sign Android apps using Flavors (#7082) (7d3a99d)
  • cli: Specify keystore alias and alias password build options for apksigner (#7073) (6612c49)
  • cli: type only import in config (#6765) (2b493ae)
  • cli: Update plugins with breaking changes (#7148) (b8c2a92)
  • remove duplicates from auto registration array using set (#7192) (c4984ae)
  • stop crashing from objc_getClassList (#7187) (e148db7)
  • web: Implement retainUntilConsumed on notifyListeners (#7127) (526292e)

Features

  • android: Load alternative layout when no WebView (#7141) (87c399a)
  • cli: allow async in capacitor config file (#4299) (5cecc3e)
  • ios: Replace usage of UserDefaults with KeyValueStore. (#7191) (cd58ba2)

6.0.0-beta.2 (2023-12-14)

Note: Version bump only for package capacitor

6.0.0-beta.1 (2023-12-14)

Bug Fixes

  • ios: Add Codable folder to podspec source_files (#7131) (04d1d55)

6.0.0-beta.0 (2023-12-13)

Bug Fixes

  • http: parse readablestream data on fetch request objects (#6919) (80ec3b7)
  • http: properly write form-urlencoded data on android request body (#7001) (a986ee5)
  • http: set formdata boundary and body when content-type not explicitly set (0c2ccd9)
  • ios: add some new cordova-ios classes used by Cordova plugins (#7096) (3db9051)

Features

  • ios: Add Codable support for CAPPluginCall and JSValueContainer (#7119) (af417e0)
  • support for Amazon Fire WebView (#6603) (3cb4eb8)

6.0.0-alpha.2 (2023-11-15)

Bug Fixes

  • ios: Remove CocoaPods Xcode 15 workaround that causes issues (#7059) (043a8db)

6.0.0-alpha.1 (2023-11-08)

Bug Fixes

  • allow double quotes in Gemfile (#6903) (3abdbed)
  • android: handle webview version for developer builds (#6907) (88498e6)
  • android: make local urls use unpatched fetch (#6953) (e50e56c)
  • android: Use Logger class instead of Log in CapacitorCookieManager (#6923) (8aaa356)
  • cli: force latest native-run version for iOS 17 support (#6926) (7e7c8b9)
  • cli: Pin @ionic/utils-subprocess version (#7057) (0ac019a)
  • cli: use helper in Podfile with correct path (#6878) (8e95be9)
  • cli: Use latest native-run (#7023) (4125160)
  • cookies: remove session cookies when initializing the cookie manager (037863b)
  • http: add support for Request objects in fetch (24b3cc1)
  • http: disconnect active connections if call or bridge is destroyed (a1ed6cc)
  • http: inherit object properties on window.XMLHttpRequest (91c11d0)
  • http: return numbers and booleans as-is when application/json is the content type (03dd3f9)
  • ios-template: added workaround for Cocoapods bug in XC15 (#6847) (10ccc76)
  • Update migrate to Capacitor 6 (#6872) (98eec8f)

Features

  • add livereload to run command (#6831) (4099969)
  • Add the spm root project to the template (#6877) (02c44c2)
  • Add XCFrameworks (#7020) (5306095)
  • android: allow developers to provide logic for onRenderProcessGone in WebViewListener (#6966) (79e17bb)
  • better support monorepos (#6811) (ae35e29)
  • ios: Makes CapacitorBridge, WebViewAssetHandler, and WebViewDelegationHandler open classes, along with several of their methods (#7009) (40d62cb)
  • modify package.swift on update and sync (#7042) (24573fb)

5.6.0 (2023-12-14)

Bug Fixes

  • cli: Use latest native-run (#7030) (1d948d4)
  • http: properly write form-urlencoded data on android request body (#7130) (a745a89)
  • http: set formdata boundary and body when content-type not explicitly set (#7133) (3862d6e)
  • ios: add some new cordova-ios classes used by Cordova plugins (#7115) (5fb902b)

Features

5.5.1 (2023-10-25)

Bug Fixes

5.5.0 (2023-10-11)

Features

  • android: allow developers to provide logic for onRenderProcessGone in WebViewListener (#6946) (34b724a)

5.4.2 (2023-10-04)

Bug Fixes

  • android: make local urls use unpatched fetch (#6954) (56fb853)

5.4.1 (2023-09-21)

Bug Fixes

  • android: handle webview version for developer builds (#6911) (b5b0398)
  • android: Use Logger class instead of Log in CapacitorCookieManager (#6925) (b6901e0)
  • cli: force latest native-run version for iOS 17 support (#6928) (f9be9f5)
  • cookies: retrieve cookies when using a custom android scheme (6b5ddad)
  • http: parse readablestream data on fetch request objects (3fe0642)
  • http: return xhr response headers case insensitive (687b6b1)
  • ios: Add workaround for CocoaPods problem on Xcode 15 (#6921) (1ffa244)

5.4.0 (2023-09-14)

Bug Fixes

  • cli: use helper in Podfile with correct path (#6888) (9048432)
  • http: add support for defining xhr and angular http response types (09bd040)
  • http: add support for Request objects in fetch (2fe4535)
  • http: inherit object properties on window.XMLHttpRequest (5cd3b2f)

Features

5.3.0 (2023-08-23)

Bug Fixes

  • cookies: remove session cookies when initializing the cookie manager (037863b)
  • http: disconnect active connections if call or bridge is destroyed (a1ed6cc)
  • http: return numbers and booleans as-is when application/json is the content type (03dd3f9)

Features

5.2.3 (2023-08-10)

Bug Fixes

  • android: allow single input file selection from samsumg gallery (#6778) (3d57ecd)
  • android: avoid R8 optimizations remove plugin classes (#6783) (cc85df5)
  • cli: remove package related checks on doctor command (#6773) (4499b6b)
  • cli: signing type option issue (#6716) (ee0f745)
  • cookies: hide httpOnly cookies from client (0cc927e)
  • http: return valid response for relative url xhr requests (bde6569)

5.2.2 (2023-07-19)

Bug Fixes

5.2.1 (2023-07-13)

Bug Fixes

  • allow single parameter on setRequestBody (#6728) (5343bdb)

5.2.0 (2023-07-12)

Bug Fixes

  • cli: make migrate not error if there are no dependencies (#6707) (25ca83a)
  • cookies: sanitize url before retrieving/setting cookies (ca40634)
  • http: fire events in correct order when using xhr (5ed3617)

Features

5.1.1 (2023-07-05)

Bug Fixes

  • ios: Revert server url addition for CAPWebView. (#6705) (1b8352d)

5.1.0 (2023-06-29)

Bug Fixes

  • android: Move bridge localUrl initialization to initWebView (#6685) (7f5f0ca)
  • android: revert cookie manager initialization to plugin load (53a2d47)
  • ios: Return proper MIME Type for local WASM files (#6675) (d7856de)
  • ios: set cors headers in asset handler for live reload (e5a1c81)

Features

  • android: add check for excluded domains before ssl request (7906d36)
  • cli: add apksigner as a build option (#6442) (9818a76)
  • export buildRequestInit function so we can use for downloadFile (95b0575

    )

5.0.5 (2023-06-09)

Bug Fixes

  • http: don't throw errors when content-type is null on response (#6627) (538821f)

5.0.4 (2023-05-23)

Bug Fixes

  • cicd: removed set -eo pipefail to allow job to continue (#6596) (caeeb09)
  • cli: correct migration of package from AndroidManifest.xml to build.gradle (#6607) (1c26a3e)
  • cli: Don't succeed migration if npm install failed (#6595) (6843d96)
  • cli: proper plugin module patch in monorepos (#6589) (d49e632)

5.0.3 (2023-05-10)

Note: Version bump only for package capacitor

5.0.2 (2023-05-09)

Bug Fixes

  • cli: handle unrecognized java --version (#6577) (56b0037)
  • cli: Move package to build.gradle in Capacitor plugins (#6569) (8cb26cd)
  • fallback to plain pod if Gemfile does not contain CocoaPods (#6581) (3a41b4c)

5.0.1 (2023-05-05)

Bug Fixes

5.0.0 (2023-05-03)

Note: Version bump only for package capacitor

5.0.0-rc.3 (2023-05-03)

Note: Version bump only for package capacitor

5.0.0-rc.2 (2023-05-03)

Bug Fixes

5.0.0-rc.1 (2023-05-02)

Bug Fixes

  • cli: Avoid infinite loop in namespace migration (#6551) (d3aacde)
  • cli: Migrate more plugin variables (#6552) (b7da5b9)

5.0.0-rc.0 (2023-05-01)

Note: Version bump only for package capacitor

5.0.0-beta.3 (2023-04-21)

Bug Fixes

  • cookies: init cookie manager after server url is set (0ee772f)

Features

  • android: update gradle to 8.0.2 and gradle plugin to 8.0.0 (#6497) (01b5b39)
  • cli: android manifest to build.gradle migration (#6533) (245b6ab)
  • cli: Migrate update to gradle 8 (#6530) (da3ac0e)

5.0.0-beta.2 (2023-04-13)

Bug Fixes

  • android: launching intents without host (#6489) (95f7474)
  • android: unify kotlin dependency version (#6501) (0a40477)
  • cookies: check isEnabled before setting cookieHandler (bb04f24)
  • ios/android: copy url from nativeResponse to response (#6482) (828fb71)
  • remove accept-charset (#6386) (bbf6f7e)

Features

5.0.0-beta.1 (2023-04-03)

Bug Fixes

  • copy url from nativeResponse to response in native-bridge.ts (#6397) (e81a2ff)

Features

5.0.0-beta.0 (2023-03-31)

Bug Fixes

  • 204 http response (#6266) (771f6ce)
  • android: Allow WebView to load data urls (#6418) (daf2ec6)
  • android: proper app url check for launching intents (#6450) (302ba35)
  • android: remove stored references to bridge that holds it in memory (#6448) (4737d2b)
  • cli: Fix cordova plugin config checker over checking 5.x (#6444) (9d21a0e)
  • ios: Event listeners were unexpectedly nil (#6445) (209d4ed)

Features

5.0.0-alpha.1 (2023-03-16)

Bug Fixes

  • android: handle empty permission list (#6375) (b11a9df)
  • android: handle null http headers and params (#6370) (e486672)
  • android: solve and/or silence lint errors (#6358) (c627415)
  • cli: point build to proper workspace name (#6371) (78b7a59)
  • iOS: Separate cookies by ; rather than ; when accessing through document.cookie (#6313) (beade60)

Features

  • android-template: Removing enableJetifier (#6339) (e118175)
  • android: Removing enableJetifier (#6333) (fc0b403)
  • cli: Add --forwardPorts option to Capacitor CLI (#5645) (2f04d29)
  • cli: update init to set androidScheme to https (#6342) (158b27e)

4.7.0 (2023-02-22)

Bug Fixes

  • handle fetch headers that are Headers objects (#6320) (cb00e49)
  • cli: prevent error on manifest element without children (#6278) (a7e374f)
  • cli: Remove buildOptions from platform capacitor.config.json (#6292) (acddcd9)
  • ios: Avoid double encoding on http urls (#6288) (4768085)
  • ios: Correctly Attach Headers to Request (#6303) (a3f875c)

Features

  • android: add ability to create config from a custom file path (#6264) (42b4f0f)
  • android: Add SSL Pinning logic (#6314) (07f113e)
  • android: enable loading of assets outside of the content web asset directory (#6301) (364497d)
  • cli: add ssl pinning copy logic (#6312) (cce66c1)

4.6.3 (2023-02-03)

Bug Fixes

  • cli/cordova: Exclude private framework Headers (#6229) (6c2726d)
  • ios: crash when http headers contain numbers (#6251) (028c556)

4.6.2 (2023-01-17)

Bug Fixes

  • android: get application/x-www-form-urlencoded as string (#6165) (0735e89)
  • cli: config file android release type not overridden (#6205) (1441c55)
  • cli: flavor flag not using correct apk (#6151) (f4e7f19)
  • ios: CapacitorHttp cannot use delete method (#6220) (4d238a9)
  • ios: encode whitespace in http plugin urls (#6169) (dccb0a9)
  • ios/android: better http error handling (#6208) (7d4d70a)

4.6.1 (2022-12-05)

Bug Fixes

  • cli: support variables in config warn checks (#6136) (b460add)

4.6.0 (2022-12-01)

Bug Fixes

  • android: Don't run Cordova plugins on ui thread (#6108) (592ee86)
  • cli: useLegacyBridge should be optional (#6095) (20f68fe)
  • cli: warns about config that is present (#6060) (7ac43e7)
  • cookies: Use Set-Cookie headers to persist cookies (57f8b39)

Features

  • android: Plugin Instance Support (#6073) (3d5b7c2)
  • ios: Plugin Registration and Plugin Instance Support (#6072) (9f1d863)

4.5.0 (2022-11-16)

Bug Fixes

  • android: Silence deprecation warning on handlePermissionResult (#6092) (888b13e)
  • cli: add vite config to framework detection (#6039) (3796d42)
  • cli: calculate padding of super.onCreate(savedInstanceState); line (#6016) (5729ac1)
  • cli: Update gradle versions only if they are older (#6015) (ae94101)
  • cli/ios: Read handleApplicationNotifications configuration option (#6030) (99ccf18)

Features

  • android/cli: Allow to use the old addJavascriptInterface bridge (#6043) (a6e7c54)
  • cookies: add get cookies plugin method (ba1e770)

4.4.0 (2022-10-21)

Bug Fixes

  • android: added ServerPath object and building options for setting initial load from portals (#6008) (205b6e6)
  • cookies: make document.cookie setter synchronous (2272abf)
  • http: fix exception thrown on 204 responses (1f6e8be)
  • http: fix local http requests on native platforms (c4e040a)

Features

  • cli: add build command for android (#5891) (6d4e620)
  • cli: add build command for ios (#5925) (8e8414f)
  • cli: supports secure live updates in Portals for Capacitor config (#5955) (a309b45)

4.3.0 (2022-09-21)

Bug Fixes

  • android: open external links in browser (#5913) (7553ede)
  • android: set all cookies on proxied requests (#5781) (5ef6a38)
  • android: set WebViewClient on the WebView (#5919) (020ed8e)
  • cli: Find the Info.plist when using scheme (#5914) (f7029ac)
  • cli: Make migrator update gradle wrapper files (#5910) (b8b9b1f)
  • cli: Make update from windows use proper paths on Podfile (#5906) (c41d28f)
  • cli: show error if npm install on migration failed (#5904) (aa60a75)
  • core: Exception object was not set on Cap (#5917) (9ca27a4)

Features

  • Capacitor Cookies & Capacitor Http core plugins (d4047cf)

4.2.0 (2022-09-08)

Features

  • cli: add inline option to copy command (#5901) (17fbabb)
  • cli: add scheme and flavor options to run command (#5873) (e4c143d)
  • cli: copy signature when using secure live updates (#5896) (0f17177)

4.1.0 (2022-08-18)

Bug Fixes

  • cli: Also update preferences plugin if present (#5831) (b9d5954)
  • cli: Don't add google-services plugin if missing (#5825) (48ff9e6)
  • cli: make migrator also update plugin variables (#5871) (478d48c)
  • cli: Migrator put registerPlugin before super.onCreate (#5828) (8cd3373)
  • cli: prevent error on migrate when devDependencies is missing (#5863) (474ad1f)
  • cli: remove double space in cap 2 variables file (#5826) (7184097)
  • cli: Support of BoM dependencies on cordova plugins (#5827) (ea2d95b)
  • ios: Prevent Xcode 14 warning on CAPWebView (#5821) (66954ef)
  • ios: return proper mimeType on M1 x86_64 simulators (#5853) (325b6fe), closes #5793
  • update @types/tar to prevent core build failure (#5822) (59e64b7)

Features

  • cli: Option to inline JS source maps during sync (#5843) (7ce6dd4)
  • ios: Add setServerBasePath(_:) to CAPBridgeProtocol (#5860) (76f28e7)

4.0.1 (2022-07-28)

Bug Fixes

4.0.0 (2022-07-27)

Bug Fixes

Features

  • android: Add android.minWebviewVersion configuration option (#5768) (ad83827)
  • android: Add Optional Data Param for Error Object (#5719) (174172b)
  • android: Use addWebMessageListener where available (#5427) (c2dfe80)
  • android-template: Use Android 12 splash API (#5777) (f3ab951)
  • cli: add migrator for cap3 to cap4 (#5762) (7cb660a)
  • ios: Add overrideable router var for CAPWebView. (#5743) (c1de1c0)
  • iOS: post install script for deployment target (#5783) (f5afa94)
  • Add option for custom error page (#5723) (e8bdef3)

4.0.0-beta.2 (2022-07-08)

Bug Fixes

  • ios: Add check for both serverURL and localURL in navigation (#5736) (8e824f3)
  • ios: properly deliver retained events after listener re-add #5732 (c5d6328)

Features

4.0.0-beta.1 (2022-06-27)

Bug Fixes

  • ios: Remove Cordova as an embedded framework (#5709) (bbf6d24)

Features

4.0.0-beta.0 (2022-06-17)

Bug Fixes

  • android: make removeAllListeners return a promise (#5527) (6f4d858)
  • android: prevent app from loading if server.url is invalid (d4a0dea)
  • cli: Use CURRENT_PROJECT_VERSION variable on ios template (#5418) (0a07648)
  • ios: make removeAllListeners return a promise (#5526) (815f71b)

Features

  • android: don't allow server.androidScheme to be set to schemes handled by WebView (01285ba)
  • android: set default targetSDK to 31 (#5442) (4442459)
  • android: set default targetSDK to 32 (#5611) (416b966)
  • android: Upgrade gradle to 7.4 (#5445) (28eaf18)
  • android: Use java 11 (#5552) (e47959f)
  • android-template: use DayNight theme as default (#5643) (9d76869)
  • cli: export android-template activity for SDK 31 support (#5351) (79b4a3c)
  • cli: set targetSDK to 31 in android-template (#5443) (8793c58)
  • cli: set targetSDK to 32 in android-template (#5612) (8b8be47)
  • cli: Upgrade Gradle to 7.4 in the template (#5446) (11b648d)
  • ios: add getConfig to CAPPlugin (#5495) (224a9d0)
  • ios: Add preferredContentMode configuration option (#5583) (5b6dfa3)
  • ios: Support of range requests on WebViewAssetHandler (#5659) (348c08d)

3.6.0 (2022-06-17)

Bug Fixes

  • ios: Use URL(fileURLWithPath:) instead of URL(string:) (#5603) (5fac1b2)

Features

  • android: update support for Portals for Capacitor to include Live Updates (#5660) (62f0a5e)
  • iOS, Android: add AppUUID Lib for plugins (#5690) (05e76cf)

4.0.0-alpha.2 (2022-05-12)

Bug Fixes

  • android: make removeAllListeners return a promise (#5527) (6f4d858)
  • android: prevent app from loading if server.url is invalid (d4a0dea)
  • cli: Use CURRENT_PROJECT_VERSION variable on ios template (#5418) (0a07648)
  • ios: make removeAllListeners return a promise (#5526) (815f71b)

Features

  • android: don't allow server.androidScheme to be set to schemes handled by WebView (01285ba)
  • android: set default targetSDK to 31 (#5442) (4442459)
  • android: Upgrade gradle to 7.4 (#5445) (28eaf18)
  • android: Use java 11 (#5552) (e47959f)
  • cli: export android-template activity for SDK 31 support (#5351) (79b4a3c)
  • cli: set targetSDK to 31 in android-template (#5443) (8793c58)
  • cli: Upgrade Gradle to 7.4 in the template (#5446) (11b648d)
  • ios: add getConfig to CAPPlugin (#5495) (224a9d0)
  • ios: Add preferredContentMode configuration option (#5583) (5b6dfa3)

3.5.1 (2022-05-04)

Bug Fixes

  • android: move initialFocus on webview into config (#5579) (8b4e861)
  • core: Make cordova bridge use Promise instead of setTimeout (#5586) (f35d96b)

3.5.0 (2022-04-22)

Features

  • android: Add overridable routing for WebViewLocalServer (#5553) (3bb288e)
  • cli: support capacitor portals plugin changes needed (#5558) (6810a19)
  • ios: Add overrideable routing for CAPBridgeViewController subclasses (#5546) (8875d5e)

4.0.0-alpha.1 (2022-03-25)

Bug Fixes

  • cli: Use CURRENT_PROJECT_VERSION variable on ios template (#5418) (0a07648)

Features

3.4.3 (2022-03-04)

Bug Fixes

  • cli: avoid srcFiles is not iterable on kotlinNeededCheck (#5481) (3c2b579)

3.4.2 (2022-03-03)

Bug Fixes

  • android: compatibility with cordova kotlin plugins (#5438) (55bf004)

3.4.1 (2022-02-09)

Bug Fixes

  • ci: add token to ghr call in xcframework build action (#5422) (5573a77)
  • ci: Fix tags/releases for Attach .xcframework CI action (#5423) (57b3df3)
  • cli: Better error on gradlew permission problems (#5405) (9420f08)
  • ios: Reload webView on webViewWebContentProcessDidTerminate (#5391) (beebff4)

3.4.0 (2022-01-19)

Bug Fixes

  • android: Add appcompat to capacitor-cordova-android-plugins module (#5373) (1c756b7)
  • android: prevent input file crash if accept has . (#5363) (bdacb30)

Features

  • android: Add getLong helper on PluginCall (#5235) (26261fb)
  • ios: Add new iOS 15 Motion permission delegate (#5317) (c05a3cb)
  • ios: Add new iOS15 media capture permission delegate (#5196) (d8b54ac)

3.3.4 (2022-01-05)

Bug Fixes

  • android: Prevent crash if activity killed on input file (#5328) (a206841)
  • cli: Escape appName from invalid characters on add (#5325) (033f4ee)
  • cli: sync failing if Info.plist is localized (#5333) (df7a104)

3.3.3 (2021-12-08)

Bug Fixes

  • android: change logging level of google services message (#5189) (6b1dd43)
  • android: Prevent crash in restoreInstanceState if bundleData is null (#5289) (622d62f)
  • android: restrict android run command to configured flavour (#5256) (ba84443)
  • cli: Add onesignal-cordova-plugin to the static list again (#5262) (e67ca99)
  • ios: Present js alert on top of the presented VC (#5282) (a53d236)

3.3.2 (2021-11-17)

Bug Fixes

  • android: Allow web geolocation if only COARSE_LOCATION is granted (#5236) (bc7b24e)
  • cli: add cordova-plugin-google-analytics to static list (#5220) (67a996c)
  • cli: Add plugin to static list if pod has use-frameworks (#5232) (8a0518b)
  • cli: sync gradle from android folder (#5233) (cd779c4)

3.3.1 (2021-11-05)

Bug Fixes

  • cli: Make config don't error if iOS is missing (#5212) (db9f12b)

3.3.0 (2021-11-03)

Bug Fixes

  • cli: Add Batch plugin to static list (#5138) (9470633)
  • cli: Add onesignal-cordova-plugin to static pod list (#5143) (937e240)
  • cli: detect and register multiple plugins from same package (#5098) (25e770c)
  • core: avoid crash on logging circular objects (#5186) (1451ec8)
  • ios: Avoid CDVScreenOrientationDelegate umbrella header warning (#5156) (31ec30d)

Features

  • android: ability to reload the webview (#5184) (c495bed)
  • cli: add support for 'pod install' in VM based environments (#5144) (32ecf22)
  • cli: Allow to configure access origin tags on cordova config.xml (#5134) (0841a09)
  • cli: Allow users to include Cordova plugins to the static list (#5175) (664149a)

3.2.5 (2021-10-13)

Bug Fixes

  • android: Avoid ConcurrentModificationException on notifyListeners (#5125) (b82bfe0)
  • android: Support cordova-android 10 (#5103) (e238233)
  • cli: create only static pod if needed (#5099) (8304744)
  • ios: proper handling of allowNavigation with multiple wildcard (#5096) (cda17a6)

3.2.4 (2021-09-27)

Bug Fixes

  • cli: await sync on add to avoid telemetry hang (833bc20)
  • ios: Add CDVScreenOrientationDelegate protocol on CAPBridgeViewController (#5070) (530477d)
  • ios: show correct line number on console logs (#5073) (ec41e74)

3.2.3 (2021-09-15)

Bug Fixes

  • android: proguard rules (#5048) (cf15c0f)
  • Add SalesforceMobileSDK-CordovaPlugin to iOS incompatible list (#5031) (6f3f79f)
  • Define cordovaConfig gradle variable (#5024) (55c217e)
  • android: save activity result launcher calls (#5004) (2c1eb60)

3.2.2 (2021-09-02)

Bug Fixes

3.2.1 (2021-09-01)

Note: Version bump only for package capacitor

3.2.0 (2021-08-18)

Bug Fixes

  • android: Don't inject map files into capacitor script (#4893) (992bebc)
  • cli: Put cordova git pod dependencies in Podfile (#4940) (642dbf4)
  • cli: Separate Swift plugins from ObjC plugins (#4925) (43ce803)

Features

  • core: implement CapacitorCustomPlatform for 3rd party platforms (#4771) (12c6294)

3.1.2 (2021-07-21)

Bug Fixes

  • android: add missing android webview lifecycle events (6a7c4e3)
  • android: Set theme an content view on onCreate (#4841) (8950c60)
  • cli: Don't warn about hideLogs on some commands (#4813) (dc279cc)
  • core: handle toJSON() in plugin objects (#4823) (0479822)
  • core: Modify safeStringify to allow multiple null values (#4853) (854539b)

3.1.1 (2021-07-07)

Bug Fixes

  • fixing peer deps issues in android and ios libs (310d9f4)

3.1.0 (2021-07-07)

Bug Fixes

  • cli: Don't error if there are no scripts (#4763) (dec3fb2)
  • ios: isNewBinary is true if defaults have no stored versions (#4779) (bd86dbe)

Features

  • cli: Add hooks to call into npm scripts when capacitor commands run (#4739) (515230c)
  • cli: allow run command to use flavors (#4782) (05cb853)
  • ios: Add limitsNavigationsToAppBoundDomains configuration option (#4789) (2b7016f)

3.0.2 (2021-06-23)

Bug Fixes

  • android: Set WEBVIEW_SERVER_URL before injecting native-bridge (#4748) (5d6b179)
  • cli: correctly show EACCES error on run (#4742) (2ab8778)
  • cli: Don't error on ios sync on non macOS (#4723) (368ffad)
  • core: cordova events not firing (#4712) (ca4e3b6)
  • ios: Use proper native events for cordova events (#4720) (99c21dc)

3.0.1 (2021-06-09)

Bug Fixes

  • android: Avoid crash on input file (#4707) (883c0fe)
  • android: Make proxy handle user info in server url (#4699) (baeed45)
  • android: Reset bridge on onPageStarted only (#4634) (96e4830)
  • cli: add priority to framework detection (#4617) (6a22f03)
  • cli: Better native-run error (#4676) (39eebd0)
  • cli: Don't prompt cordova preferences if non interactive (#4680) (293527c)
  • cli: Remove v3 prefix from docs urls (#4596) (f99f11a)
  • cli: Throw error if native-run didn't find targets (#4681) (bfbf2b5)
  • Make isPluginAvailable available on bridge (#4589) (151e7a8)

3.0.0 (2021-05-18)

Bug Fixes

  • cli: create-react-app framework detection should not look for react-dev-utils (#4585) (9f7910e)

3.0.0-rc.4 (2021-05-18)

Features

3.0.0-rc.3 (2021-05-11)

Note: Version bump only for package capacitor

3.0.0-rc.2 (2021-05-07)

Bug Fixes

Features

3.0.0-rc.1 (2021-04-29)

Bug Fixes

  • generate Capacitor.Plugins object (#4496) (1c71b7a)
  • android: Release the call after reject/resolve (#4318) (a9f30a8)
  • android: resolve issue with activity result API registration for fragments (#4402) (ac6c6bc)
  • cli: Allow prereleases on node version check (#4469) (dd26a98)
  • cli: filter targets without id from run device list (#4397) (9ec444f)
  • cordova: use proper targetSdkVersion (#4498) (7d48be8)
  • core: Call native implementation before web implementation (#4493) (febd606)
  • core: Use web listener if there is no native implementation (#4488) (196d843)
  • ios: cordova-plugin-screen-orientation compatibility (#4367) (b893a57)
  • ios: fire resume/pause events if no cordova plugins installed (#4467) (0105f7a)
  • ios: put cancel button of confirm/prompt on the left (#4464) (e5b53aa)

Features

  • Unify logging behavior across environments (#4416) (bae0f3d)
  • android: ability to add listeners to the Capacitor WebView (#4405) (7bdcc15)
  • cli: Add signup prompt on first init (#4440) (b3faa97)
  • iOS: Include native-bridge.js as a resource in both Cocoapods and direct build (#4505) (c16ccc0)

3.0.0-rc.0 (2021-03-10)

Bug Fixes

  • android: calls re-saved during permission/activity result callbacks were being released (502a2d1)
  • android: live reload not working when using adb reverse (362f221)
  • cli: Make tests work on npm 7 (#4297) (676c907)

Features

  • android: add configurable app path for embedded capacitor (#4264) (e433691)
  • android: Unifying saving plugin calls (#4254) (a648c51)
  • iOS: Obj-C convenience accessors on CAPPluginCall (#4309) (e3657d7)
  • iOS: Unifying saving plugin calls (#4253) (de71da5)

3.0.0-beta.6 (2021-02-27)

Note: Version bump only for package capacitor

3.0.0-beta.5 (2021-02-27)

Note: Version bump only for package capacitor

3.0.0-beta.4 (2021-02-26)

Bug Fixes

  • cli: init failure if config.xml is present (#4227) (f1703dc)

3.0.0-beta.3 (2021-02-18)

Bug Fixes

  • cli: do not error if webDir is missing when adding platforms (#4215) (4583add)
  • core: do not add window.cordova on web apps (#4214) (6d673ef)

Features

  • cli: do not require webDir when server.url is set (#4200) (91ddfbd)
  • iOS: Add automatic Date serialization to bridge communication (#4177) (3dabc69)

3.0.0-beta.2 (2021-02-08)

Bug Fixes

  • core: handle js.error messages to fix window error handler (#4124) (c0deb1d)
  • address bug in isPluginAvailable() for web and native (#4114) (2fbd954)
  • android: get PermissionState enum by state value (#4100) (194ae86)
  • android: requestPermission call rejects if permission missing in manifest (55ef5ff)
  • core: fix another $$typeof issue (#4113) (4cbae41)
  • iOS: preserve null values in bridged types (#4072) (6dc691e)
  • remove USE_PUSH flag and code from iOS template (#4070) (6d54243)

Features

  • android: activity result use new API and update permission result callbacks to match (#4127) (002f1e5)
  • android: androidxActivityVersion & androidxFragmentVersion gradle variables (#4103) (4f77b96)
  • cli: configurable iOS build scheme (#4073) (e6374dc)
  • cli: send config, rootDir, and webDir to custom platform hooks (#4084) (13e9860)

3.0.0-beta.1 (2021-01-14)

Note: Version bump only for package capacitor

3.0.0-beta.0 (2021-01-13)

Features

3.0.0-alpha.14 (2021-01-13)

Bug Fixes

  • android: append missing new lines on injected cordova files (#4058) (dbdc78d)
  • cli: bump minimum node version to 12.4.0 (#4059) (61e3be0)
  • cli: default to new directory instead of crashing (70fdf0b)

Features

  • android: method to check permission for an alias (#4062) (c88c4b4)

3.0.0-alpha.13 (2021-01-13)

Bug Fixes

  • cli: use stderr for logs when using --json option (#4044) (452a101)
  • iOS: properly handle date types during JSValue coercion (#4043) (1affae7)
  • iOS: skip Swift type coercion on Cordova plugin calls (#4048) (7bb9e0f)

Features

  • cli: create TS configuration files in init (#3999) (fa7003e)

3.0.0-alpha.12 (2021-01-08)

Bug Fixes

Features

  • android: switch to new callback-style permission requests (#4033) (cc459de)
  • cli: allow 'export default' style TS config files (#4031) (9393667)
  • cli: opt-in anonymous usage data (#4022) (3facfb7)

3.0.0-alpha.11 (2020-12-26)

Features

  • android: expose CapConfig.loadDefault(), deprecate v2 constructor (#3964) (94ae977)
  • iOS: Open CAPBridgeViewController for subclassing (#3973) (a601705)

3.0.0-alpha.10 (2020-12-15)

Bug Fixes

  • android: include lint.xml for downstream lint tasks (efa72f3)

3.0.0-alpha.9 (2020-12-15)

Bug Fixes

  • android: include lint-baseline.xml for downstream lint tasks (20ccaa0)

3.0.0-alpha.8 (2020-12-15)

Bug Fixes

  • Android: Use plugin's getPermissionStates() to support overriding (#3939) (855a607)
  • ios: expose lastURL getter (#3898) (90b7fe3)

Features

  • android: add onConfigurationChanged() activity lifecycle hook (#3936) (29e9e2c)
  • android: Add WebColor utility for parsing color (#3947) (3746404)
  • Android: Refactoring configuration (#3778) (9820a30)

3.0.0-alpha.7 (2020-12-02)

Bug Fixes

  • android: dont release calls that are manually saved, eg listeners/watchers (#3857) (f1c8fe9)
  • android: fixed breaking change to handleOnActivityResult (#3888) (5fd60e6)
  • android: resolve undefined for both checkPermissions and requestPermissions by default (#3855) (383f62b)
  • cli: Properly detect cocoapods on multiple platforms (#3810) (8753694)
  • cli: run sync instead of copy during run (#3816) (ff45340)
  • cli: use correct path for native-run (02cf1ba)
  • core: export PermissionState (#3775) (2d5ac96)
  • ios: share message handler between webview and bridge (#3875) (f7dff2e)

Features

3.0.0-alpha.6 (2020-10-30)

Bug Fixes

  • android: avoid crash on input file capture (#3715) (f502a99)

Features

3.0.0-alpha.5 (2020-10-06)

Note: Version bump only

3.0.0-alpha.4 (2020-09-23)

Features

  • cli: ability to specify custom platform directories (#3565) (c6eda55)

3.0.0-alpha.3 (2020-09-15)

Bug Fixes

  • android: allow directories beginning with underscore in assets dir to be packaged (c23d993)

3.0.0-alpha.2 (2020-08-31)

Features

  • Add extension for creating data from data url (#3474) (2909fd0)

3.0.0-alpha.1 (2020-08-21)

Bug Fixes

  • cli: update plugin template to compile using java 8 (#3350) (676917e)
  • core: provide mock implementation for unimplemented platforms (#3352) (befe230)
  • core: use more explicit result for Browser plugin events (#3349) (75f99d4)
  • core: use own type for backButton event result (#3348) (05d0e45)
  • ios: config bug from swiftlint refactor (ace879f)

Features

3.0.0-alpha.0 (2020-07-23)

Features

  • android: add custom plugins to BridgeFragment (#3280) (d131a5f)
  • core: add registerPlugin for importing from plugin packages (#3305) (95475cc)

Chores

  • refactor(android): remove unused interaction listener on BridgeFragment (#3552) (fae50b6), closes #3552

2.4.6 (2021-01-13)

Bug Fixes

  • fix(ios): correctly initialize cordova plugins with webViewEngine (#4039) (273fab5), closes #4039

2.4.5 (2020-12-14)

Bug Fixes

  • fix(ios): avoid crash on portrait apps after taking a photo (#3926) (f182868), closes #3926

2.4.4 (2020-12-01)

Bug Fixes

  • fix: wildcard in allowNavigation (#3833) (de1eac8), closes #3833
  • fix(android): load local assets when using wildcard on allowNavigation (#3834) (66f2efb), closes #3834
  • fix(cli): replace AndroidManifest.xml Cordova variables with default value (#3863) (9965d58), closes #3863

2.4.3 (2020-11-18)

Bug Fixes

  • fix(ios): Don't get location if permission is not determined (#3802) (4fb9d348), closes #3789
  • fix(Filesystem): avoid directory already exists on append (#3629) (249073d6), closes #3620
  • fix(android): Avoid SecurityError on Android 10 file share (#3655) (1c47e15f), closes #3638

2.4.2 (2020-09-24)

Bug Fixes

  • fix(android): BridgeFragment NullPointerException (#3553) (5133e2e), closes #3553
  • fix(android): move splash screen trigger before the webview render to prevent flicker (2.x) (#3608) (cbab54c), closes #3608
  • fix(cli): halt update upon failure (#3595) (ec086b0), closes #3595
  • fix(ios): iterate listeners to avoid mutated while being enumerated (#3572) (fbaab54), closes #3572

Chores

  • refactor(android): remove unused interaction listener on BridgeFragment (#3552) (fae50b6), closes #3552

2.4.1 (2020-09-09)

Bug Fixes

  • fix(cli): replace SDK variables with default values on Cordova plugins (#3525) (090427a), closes #3525
  • fix(cordova): add CDVPlugin+Resources category for better plugin support (#3380) (8d89b91), closes #3380

Chores

  • chore(cli): remove cordova-plugin-googlemaps from skip list (#3436) (cfb74af), closes #3436

2.4.0 (2020-07-27)

Bug Fixes

  • fix(android): don't return 404 on empty files (#3323) (cfbd1e3), closes #3323
  • fix(android): fix LocalNotification on functionality (#3307) (15af432), closes #3307
  • fix(android): Provide a file name when an image is saved to the gallery to prevent crash (#3331) (a7b9320), closes #3331
  • fix(cli): avoid npm gitignore rename on new plugins (#3292) (2c9b5e1), closes #3292
  • fix(ios): only open a URL when the application is active (#3328) (8d7c58b), closes #3328

Features

  • feat(camera): add preserveAspectRatio resizing option (#3309) (27a8bcb), closes #3309

Chores

  • chore: bump peerDependencies for 2.4.0 (#3342) (2ff7bc4), closes #3342
  • chore: make deploy script push to 2.x branch (#3337) (d0d30d6), closes #3337
  • chore(ci): hook up workflows for 2.x (89f8ae8)
  • chore(readme): add contributors manually (519ead8)

2.3.0 (2020-07-16)

Bug Fixes

  • fix(android): restore local notifications after device reboot (#3027) (2a39a7d), closes #3027
  • fix(android): Splash.show not resolving if splash is visible (#3262) (bfd9884), closes #3262
  • fix(android): use notification sound for notifications, not alarm (#2743) (b2d50f9), closes #2743
  • fix(cli): Avoid duplicate usesCleartextTraffic attribute (#3245) (861874f), closes #3245
  • fix(cordova): patch usages of webView superview (#3177) (8241c81), closes #3177

Features

  • feat: add appId and appName to device info (#3244) (0d5e132), closes #3244
  • feat(android): add ability to share both text and file (#3233) (4e8b59e), closes #3233
  • feat(android): add option to make a notification ongoing (#3165) (1ee51cd), closes #3165
  • feat(android): start animatable layers when splash drawable is layered (#2733) (606b59f), closes #2733
  • feat(android): update to use androidx.exifinterface.media.ExifInterface (6196907)
  • feat(cli): add hooks to capacitor commands for custom platforms (#3091) (c2133c5), closes #3091
  • feat(ios): improve initial webview loading appearance (#2933) (49720a5), closes #2933
  • feat(web): add file input method for camera (#1856) (25505d2), closes #1856

Chores

  • chore: update ios and android peerDependencies (#3274) (d8ee77b), closes #3274
  • chore(android): improve error message when Filesystem.copy fails (#3148) (598d7dc), closes #3148
  • chore(android): make androidx.exifinterface version configurable (#3236) (3c64162), closes #3236
  • chore(cli): add deprecation notice for all electron commands (#3268) (5e84ce9), closes #3268
  • chore(cli): add deprecation notice for electron (#3263) (b7d5639), closes #3263
  • chore(cli): pin cli version instead of latest on plugin generation (#3201) (8651ef1), closes #3201
  • chore(cli): update plugin generation and plugin template (#3241) (97a5b9a), closes #3241
  • chore(cli): use real path to Capacitor iOS Pods (#3249) (618f9cf), closes #3249

2.2.1 (2020-07-01)

Bug Fixes

  • fix: revert static Config class (#3126) (d104e9a), closes #3126
  • fix(android): LocalNotification action not dismissing notification (#3112) (6f5504b), closes #3112
  • fix(iOS): Making permissions switch statements exhaustive & supporting new iOS 14 cases (#3160) (f1d8c8c), closes #3160
  • fix(SplashScreen): show method not resolving if autoHide is false (#3144) (28a0e42), closes #3144

Docs

  • docs(cli): clarify "missing web assets directory" error message (#3131) (da8b8a0), closes #3131
  • docs(contributing): outline difference between issues & discussions (#3083) (4617908), closes #3083

Chores

  • chore: remove package-lock.json files (#3093) (9cb36bb), closes #3093
  • chore: update capacitor twitter url (#3099) (782e57a), closes #3099
  • chore: Update changelog for 2.2.0 (dfe4239)
  • chore: update ios and android peerDependencies (12daa6a)
  • chore: update site links (#3152) (cdd0337), closes #3152
  • chore: Update the location of capacitor pods for IonicRunner (#3120) (937e3a2), closes #3120
  • chore(android): update gradle wrapper to 5.6.4 (#3004) (3a2244c), closes #3004
  • chore(ci): add core to CI tests (#3094) (26e5e74), closes #3094
  • chore(ci): test multiple xcode versions (#3154) (7b9ac92), closes #3154
  • chore(cli): cleanup doctor output (#3096) (c2adf4c), closes #3096
  • chore(cli): read plugin podspec values from package.json (#3092) (2e61a9a), closes #3092
  • chore(e2e): remove for now (#3086) (0e33ca4), closes #3086
  • chore(github): add link to community proposals (048b07e)
  • chore(github): add needs-reply workflows (e97fd48)
  • chore(github): add push handler for capacitor bot (d2b6513)
  • chore(github): allow blank issues (53c0c15)
  • chore(github): change new contributor commit message (7e36434)
  • chore(github): checkout for capacitor bot (d4b8457)
  • chore(github): exclude Ionitron from contributors script (fffa487)
  • chore(github): hook up capacitor-bot (c5878a8)
  • chore(github): lock in bot for now (9534707)
  • chore(github): remove duplicate section (615225a)
  • chore(github): update needs-reply label name (9bd353c)
  • chore(github): use config-based bot (673344d)
  • chore(readme): add new contributor (#3110) (c04d8c3), closes #3110
  • chore(readme): add new contributor (#3150) (0bc0152), closes #3150
  • chore(readme): add new contributor (#3173) (fe3f552), closes #3173
  • chore(readme): add new contributor (#3185) (84ca1ed), closes #3185
  • chore(readme): add new contributor (#3190) (ce258f2), closes #3190
  • chore(readme): show contributors in readme (#3097) (c4d749f), closes #3097
  • chore(site): remove from repo (#3138) (7c82ad3), closes #3138
  • chore(test): increase timeout (c501208)
  • test(android): add tests for PluginMethodHandler (#3153) (dd7077e), closes #3153
  • test(android): setup tests, test JSObject (#2508) (5a37496), closes #2508
  • refactor(android): MessageHandler formatting and simplifying (#2510) (befe798), closes #2510

2.2.0 (2020-06-10)

Bug Fixes

  • fix(cli/cordova): replace $PACKAGE_NAME with ${applicationId} (#3030) (7a2a45f), closes #3030
  • fix(android): incorrect keyboard height (#2924) (035f74e), closes #2924
  • fix(android): set cookie on proxied request (#3076) (9b96edc), closes #3076
  • fix(android): set cookie on proxied request only if exists (#3077) (766a61d), closes #3077
  • fix(ios): update frame immediately when keyboard hides (#3038) (e538bad), closes #3038

Features

  • feat(core/web): add areEnabled implementation for LocalNotifications (#2900) (179104c), closes #2900
  • feat(android): move Config to be per-instance rather than a singleton (#3055) (b4815a5), closes #3055
  • feat(ios): show toast when loading url in debug mode (#2871) (171870b), closes #2871
  • feat(Permissions): allow microphone check (#3068) (a2f2e4f), closes #3068

Docs

  • docs(push): Add descriptions to push notification methods (#3036) (a2ea9ce), closes #3036
  • docs(share): remove wrong sentence (#3051) (d7b09c0), closes #3051

Chores

  • chore: fix circleci tests (#3025) (2c4e72f), closes #3025
  • chore: fix receive spelling (#3035) (319bd8a), closes #3035
  • chore: missing changes on ios publish (#3034) (5b1f3fb), closes #3034
  • chore: simplify ios publishing (#3028) (38791a8), closes #3028
  • chore: Update changelog for 2.1.2 (ee919f7)
  • chore(android): avoid connection on proxy to check the content type (#3078) (0d2894c), closes #3078
  • chore(android): Fix receive spelling in Javadoc (#3029) (28c8792), closes #3029
  • chore(ci): switch to Github Actions (#3057) (8aefce0), closes #3057
  • chore(github): important emoji fix (#3081) (1d7fd2c), closes #3081
  • chore(github): issue template cleanup (#3056) (939ce8b), closes #3056
  • chore(ios): correct plugin descriptions (#3037) (a8ad95d), closes #3037
  • chore(readme): revamp (#3058) (7adde78), closes #3058
  • chore(test): increase timeout so integration tests pass (#3079) (70eff96), closes #3079

2.1.2 (2020-05-29)

Bug Fixes

  • fix: send error on photos picker dismiss on ios 13 (#3010) (47f2dd8), closes #3010
  • fix(android): remove bintray publishing plugin to fix Gradle 6+ issues (#3016) (b584b00), closes #3016

Docs

  • docs: add information about disabling logs (#3001) (e9b2c9d), closes #3001
  • docs: make links to other pages absolute (#3002) (22d9a09), closes #3002

Chores

  • chore: remove redundant checks for android_home and bintray (#3019) (c407d74), closes #3019
  • chore: Update changelog for 2.1.1 (555f4af)
  • chore(cli): run tests with max workers, not in band (#3018) (2e6a9c4), closes #3018
  • chore(ios): remove pod deployment (#3017) (8b8c051), closes #3017

2.1.1 (2020-05-27)

Bug Fixes

  • fix(core/web): Filesystem.appendFile creating wrong parent folder (#2985) (3951f6b), closes #2985
  • fix(android): Filesystem.requestPermissions() not working (#2936) (2a9a95d), closes #2936
  • fix(android): Prevent Android 10 crash on Filesystem.readdir (#2950) (0914c23), closes #2950
  • fix(android): remember camera prompt selection after permission result (#2903) (cdd317f), closes #2903
  • fix(cli): Improve plugin.xml framework detection (#2956) (8736d90), closes #2956
  • fix(cordova): Add cordova-support-google-services to incompatible list (#2912) (58d0768), closes #2912
  • fix(cordova): Exclude framework headers (#2972) (53a6371), closes #2972
  • fix(ios): Create tmpWindow when is needed and destroy when not needed (#2995) (9475129), closes #2995
  • fix(web): improve Proxy check to avoid SSR problems (#2851) (7afc9eb), closes #2851

Docs

  • docs(ce-plugins) add @byrds/capacitor-contacts plugin (#2939) (56d4159), closes #2939
  • docs: Appflow is now available (#2970) (516386e), closes #2970
  • docs(android): Add information about accessing public folders in Android 10 (#2951) (6d1778b), closes #2951
  • docs(ce-plugins): add capacitor-blob-writer (#2885) (cacecb4), closes #2885
  • docs(ce-plugins): add capacitor-firebase-crashlytics (#2938) (cb1e672), closes #2938
  • docs(cordova-migration): Add cordova plugin uninstall details (#2935) (17bf3ab), closes #2935
  • docs(deep-links): clarify apple-app-site-association file (#2963) (ac9c3de), closes #2963
  • docs(Plugins): add information about how to override navigation (#2923) (63c8542), closes #2923
  • docs(splash): Full Screen & Immersive are android only (#2945) (b8e7279), closes #2945
  • docs(workflow): change update instructions to get latest version (#2937) (0c151fc), closes #2937

Chores

  • chore(dependencies): Update package dependencies to 2.1.0 (a5fb2bc)
  • chore(site): Update dependencies (#2928) (a9d4698), closes #2928
  • chore(site): update firebase-tools (#2915) (bdce166), closes #2915

(2020-05-07)

2.1.0 (2020-05-07)

Bug Fixes

  • fix: set launchShowDuration to 0 on new projects only (#2876) (8de0414), closes #2876
  • fix(android): call error on prompt cancel (#2855) (c86cfb1), closes #2855
  • fix(android): check if NETWORK_PROVIDER is enabled (#2859) (f4d5c84), closes #2859
  • fix(android): make readFile not add newlines on base64 strings (#2857) (31d65c9), closes #2857
  • fix(cli): avoid infinite loop on scoped dependencies (#2868) (69d62f7), closes #2868
  • fix(ios): remove thread warning on Haptics.selectionEnd() (#2860) (471ed0c), closes #2860
  • fix(splash): Make splash launch delay timeout zero to speed up capacitor boot (b29346b)

Features

  • feat: Add common hideLogs option (#2865) (1b3f0ec), closes #2865
  • feat: Allow plugins to override navigation (#2872) (41f9834), closes #2872
  • feat(android): add vibration option to notifications channel (#2787) (2f6f0ba), closes #2787
  • feat(android): expose JSON string constructor for JSArray (#2879) (040bfc8), closes #2879
  • feat(android): hideLogs feature (#2839) (d60757a), closes #2839
  • feat(android): implement selection haptic feedback (#2704) (34dd280), closes #2704
  • feat(camera): make prompt strings localizable (#2631) (0c09fc8), closes #2631
  • feat(cordova): Add WK_WEB_VIEW_ONLY=1 preprocessor macro (#2880) (603b2e3), closes #2880

Docs

  • docs(browser): Update information for close method (#2796) (89c64af), closes #2796

2.0.2 (2020-04-29)

Bug Fixes

  • fix(android) : App can crash on clipboard.read if empty (#2815) (fc33265), closes #2815
  • fix(android): avoid camera crash on photo edit cancel (#2776) (4b8820d), closes #2776
  • fix(android): don't remove LocalNotification from pending on dismiss (#2809) (822b140), closes #2809
  • fix(ios): allow Browser popover presentation if supported (#2784) (4b40494), closes #2784
  • fix(ios): remove applicationState check on keyboard plugin (#2820) (dbc1da1), closes #2820
  • fix(web): Gracefully degrade Proxy usage to fix IE11 (#2759) (b61f909), closes #2759

Docs

  • docs(ios/configuration): Add information on how to rename your app (#2768) (55c3d52), closes #2768
  • docs: improve visibility of jetifier command (#2844) (fd28a3a), closes #2844
  • docs(android): explain where to apply the variables change (#2791) (e5bd2eb), closes #2791
  • docs(ce-plugins): Add capacitor-admob-advanced (#2780) (9b1593d), closes #2780
  • docs(deep-links): Rename applinks.json to assetlinks.json (#2842) (53883ce), closes #2842
  • docs(firebase pn): Update Push Notifications with Firebase Guide (#2698) (ee5e283), closes #2698
  • docs(keyboard): Add missing import in example (#2749) (04fb275), closes #2749
  • docs(troubleshooting): Add AndroidX information and workaround (#2832) (d9cd399), closes #2832
  • docs(updating): Provide a full path to variables.gradle file (#2769) (3638a89), closes #2769
  • docs(updating): Remove duplicate gradle sentence (#2798) (347029c), closes #2798

Chores

2.0.1 (2020-04-10)

Bug Fixes

  • fix(android): Avoid crash on schedule if LocalNotifications are disabled (#2718) (aac51fe), closes #2718
  • fix(android): display title on Modals.showActions (#2730) (c2e0358), closes #2730
  • fix(android): input autofocus and javascript focus not working (#2719) (e010a28), closes #2719
  • fix(android): use proper targetSdkVersion (#2706) (3cd02e4), closes #2706
  • fix(cli): avoid error on create command (#2727) (fefa4b9), closes #2727
  • fix(cli): match platform version with cli version on add command (#2724) (6172932), closes #2724
  • fix(cli): use appName as package.json name on electron project (#2741) (d6fc2d8), closes #2741
  • fix(cli): Warn if core version doesn't match platform version (#2736) (29a9acf), closes #2736
  • fix(cordova): Don't add as system library if it's a vendored library (#2729) (404574d), closes #2729
  • fix(cordova): handle plugin.xml asset tag (#2728) (8e1abfe), closes #2728
  • fix(electron): Update Modals Plugin to use new dialog async syntax (#2742) (4c13fe0), closes #2742
  • fix(ios): allow access to extension-less files (#2726) (3baf81b), closes #2726
  • fix(ios): don't use the tmpWindow on popover presentation (#2714) (327ffc5), closes #2714
  • fix(plugin-template): remove incorrect = from android gradle file (#2689) (39c8d4a), closes #2689

Docs

  • docs(ce-plugins): Remove capacitor-apple-login (#2734) (b532179), closes #2734
  • docs(updating): Add 2.0.0 changes for electron (#2708) (6a03960), closes #2708
  • docs(updating): Add some 2.0.0 missing information (#2707) (46ca030), closes #2707
  • docs(updating): modify the guides for 2.0.0 final (00f6196)

Chores

  • chore(android): fix release script to use Android X (#2687) (a63e203), closes #2687
  • chore(android): Improve handling of splashImmersive and splashFullScreen preferences (#2705) (1c633c5), closes #2705

2.0.0 (2020-04-03)

Bug Fixes

  • fix(android): allow Share plugin to provide text or url only (#2436) (b6328f0), closes #2436
  • fix(android): Avoid Accessibility.speak crash (#2554) (77b59f8), closes #2554
  • fix(android): don't return NO_CAMERA_ERROR if any camera is present (#2558) (4f6ca98), closes #2558
  • fix(android): maintain status bar color during splash (#2603) (59fcf9e), closes #2603
  • fix(android): make camera work on Android 10 (#2559) (4a1a7b8), closes #2559
  • fix(android): make LocalNotification not crash on showing when (#2677) (63ecd1c), closes #2677
  • fix(android): Make Modals.showActions non cancelable (#2504) (ffdd78c), closes #2504
  • fix(android): make sure scheduled time is shown in LocalNotifications (#2553) (448e7b7), closes #2553
  • fix(android): missing AndroidX changes (#2454) (10acf5c), closes #2454
  • fix(android): plugin retained events not being retained if listeners were empty (#2408) (b817e83), closes #2408
  • fix(android): put google() on top of jcenter() in gradle files (#2461) (3263dbc), closes #2461
  • fix(android): return original camera image if edition was canceled (#2358) (ce93ed3), closes #2358
  • fix(android): support for multi-line text in LocalNotifications (#2552) (59d02ab), closes #2552
  • fix(android): Use NotificationCompat constant for setting visibility (#2586) (62b11fd), closes #2586
  • fix(cli): Avoid AndroidManifest.xml not found error on add (#2400) (120969c), closes #2400
  • fix(cli): avoid error when config.xml has no preferences (#2627) (6c0dc4b), closes #2627
  • fix(cli): prevent cordova dependency loop if plugin contains @ (#2622) (9dcb2ff), closes #2622
  • fix(cli): properly merge non application config-file (#2478) (9c589a3), closes #2478
  • fix(cordova): Add lib prefix to .a library names (#2636) (2be4a92), closes #2636
  • fix(cordova): handle source-file with framework attribute (#2507) (f7cd4c0), closes #2507
  • fix(doctor): add electron checks (#2434) (d5efb05), closes #2434
  • fix(electron): correct implementation of Filesystem.appendFile (#2567) (c6a3b3b), closes #2567
  • fix(electron): Provide app version in Device.getInfo() (#2521) (0998ae8), closes #2521
  • fix(electron): various clipboard fixes (#2566) (2c809ab), closes #2566
  • fix(ios): avoid crash on registerPlugins on Xcode 11.4 (#2414) (ca8fa9e), closes #2414
  • fix(ios): implement statusTap for iOS 13 (#2376) (7cb77c8), closes #2376
  • fix(ios): make ActionSheetOptionStyle.Cancel show cancel button (#2496) (d120021), closes #2496
  • fix(ios): Make Camera.getPhoto return exif from gallery photos (#2595) (18f9d81), closes #2595
  • fix(ios): Make Clipboard plugin return errors (#2430) (6a2ee92), closes #2430
  • fix(ios): make Clipboard.read return text/plain (#2565) (078284d), closes #2565
  • fix(ios): return error if Cancel is selected from Camera.getPhoto() prompt (#2550) (a015f8f), closes #2550
  • fix(ios): writeFile failing on root folders (#2670) (f7a800c), closes #2670
  • fix(LocalNotifications): return proper LocalNotificationScheduleResult on schedule (#2490) (b89fb15), closes #2490
  • fix(modals): make inputPlaceholder set a placeholder and not text (#2474) (8002791), closes #2474
  • fix(modals): make showActions work on web and electron (#2501) (f1204b8), closes #2501
  • fix(toast): unify duration across platforms (#2340) (717dd0a), closes #2340

Features

  • feat: add requestPermission to PushNotifications and LocalNotifications (#2516) (82e38a4), closes #2516
  • feat: Allow plugins to reject with a string code (#2533) (f93c354), closes #2533
  • feat: implement removeAllListeners (#2609) (ac55d63), closes #2609
  • feat(android): add configurable icon color for local notifications (#2548) (0bfa0bf), closes #2548
  • feat(android): Add immersive configuration to Splash (#2425) (2605ad6), closes #2425
  • feat(android): Add lights and lightColor to PushNotificationChannel (#2618) (4c0170c), closes #2618
  • feat(android): Add Statusbar.setOverlaysWebView method (#2597) (d035939), closes #2597
  • feat(android): Allow plugin methods to crash (#2512) (253cdc9), closes #2512
  • feat(android): Allow to configure a default notification sound (#2682) (93eb9aa), closes #2682
  • feat(android): avoid app restart on activity resize or uiMode change (#2584) (4a29ff8), closes #2584
  • feat(android): Enable AndroidX and use AndroidX dependencies (#2045) (8b606e9), closes #2045
  • feat(android): Handle onDestroy lifecycle event in plugins (#2421) (6fe6d25), closes #2421
  • feat(android): implement BridgeFragment for easier embedding using Fragments (#2666) (a8d9591), closes #2666
  • feat(android): make AppRestoredResult also returns error info and success boolean (#2497) (b650880), closes #2497
  • feat(android): Make Bridge.restoreInstanceState() public (#2538) (7020f1f), closes #2538
  • feat(android): make JSObject.getString return null instead of 'null' string (#2602) (52069b7), closes #2602
  • feat(android): Make variables.gradle file not mandatory (#2600) (4fc5039), closes #2600
  • feat(android): provide WebViewClient accessor (#2477) (dd3875b), closes #2477
  • feat(android): update gradle and dependencies (#2431) (6598752), closes #2431
  • feat(android): use common variables for config and dependencies (#2534) (d1009bb), closes #2534
  • feat(android): use Fused Location Provider on Geolocation plugin (#2409) (7faec79), closes #2409
  • feat(App): Add getState method to check current app state (#2611) (f20bf29), closes #2611
  • feat(camera): unify saveToGallery behavior (#2671) (2185833), closes #2671
  • feat(camera): Unify saveToGallery default value to false (#2557) (d222226), closes #2557
  • feat(cli): make init use values from capacitor.config.json as defaults (#2620) (9157e1f), closes #2620
  • feat(cli): use name from package.json as default name (#2621) (e9bec42), closes #2621
  • feat(clipboard): allow to write images on web plugin (#2523) (5ba2a20), closes #2523
  • feat(clipboard): remove Clipboard.read() options (#2527) (2209113), closes #2527
  • feat(Device): Add getBatteryInfo function (#2435) (0deca04), closes #2435
  • feat(electron): Remove injectCapacitor function (#2415) (d17f0be), closes #2415
  • feat(Filesystem): add recursive option to writeFile (#2487) (53211a3), closes #2487
  • feat(Filesystem): make writeFile return the file uri (#2484) (e1a00bd), closes #2484
  • feat(Filesystem): Remove createIntermediateDirectories from MkdirOptions (#2410) (dae3510), closes #2410
  • feat(Filesystem): remove FilesystemDirectory.Application (#2514) (cd395d2), closes #2514
  • feat(ios): add device name to Device.getInfo() (#2491) (4fb244d), closes #2491
  • feat(ios): add presentVC and dismissVC methods to bridge (#2678) (a6c91da), closes #2678
  • feat(ios): allow to set status bar animation style on show and hide (#2587) (fa6bb3e), closes #2587
  • feat(ios): change native location accuracy values (#2420) (16c3ea1), closes #2420
  • feat(ios): Update Capacitor project to Swift 5.0 (#2465) (c895fc4), closes #2465
  • feat(LocalNotifications): add createChannel, deleteChannel and listChannels methods (#2676) (d72e25d), closes #2676
  • feat(LocalNotifications): Allow to create notifications without activity (#2648) (a4e5918), closes #2648
  • feat(modals): add inputText property to prompt for prefilled text (#2475) (a05311d), closes #2475
  • feat(PushNotifications): Make register method return if permission was granted (#2324) (a0bcf5c), closes #2324

Docs

  • updated local notification config docs (#2601) (9997b3e), closes #2601
  • docs: fix Local Notifications url (#2542) (a3a19b3), closes #2542
  • docs: update default cordovaSwiftVersion (#2466) (4908bbb), closes #2466
  • docs: update Filesystem.writeFile sample (#2568) (5122527), closes #2568
  • docs(android): Add update guide for Capacitor 2.0 beta (#2572) (0f0ed25), closes #2572
  • docs(camera): add missing usage descriptions needed in iOS (#2633) (7692ee4), closes #2633
  • docs(ce-guides): Remove dead link (#2418) (a1b6403), closes #2418
  • docs(ce-plugins): Add capacitor-dark-mode plugin (#2681) (4fcb725), closes #2681
  • docs(ce-plugins): add capacitor-healthkit (#2489) (9e356db), closes #2489
  • docs(ce-plugins): Add SQLite, SQLite Storage and Video Player plugins (#2589) (78a28da), closes #2589
  • docs(ce-plugins): Remove or replace deprecated plugins (#2419) (dfc1ed6), closes #2419
  • docs(clipboard): update read example removing options (#2564) (49e9f8d), closes #2564
  • docs(contributing): Update docs contributing readme (#2592) (0799d52), closes #2592
  • docs(dependencies): update to latest Capacitor (#2599) (0154f51), closes #2599
  • docs(Device): fix getInfo response and add getBatteryInfo example (#2569) (057512a), closes #2569
  • docs(firebase-guide): update guide with Capacitor 2.0 changes (#2598) (4f0e749), closes #2598
  • docs(guides): Add new Deep Links guide (#2581) (b9e25f3), closes #2581
  • docs(ios): Add update guide for Capacitor 2.0 beta (#2571) (ca0baf7), closes #2571
  • docs(ios): Document hideLogs config option (#2619) (23b2173), closes #2619
  • docs(LocalNotifications): Update schedule sample (#2570) (00d313f), closes #2570
  • docs(network): Remove example guide because of dead link (#2417) (2364505), closes #2417
  • docs(permissions): Display permissions page on side menu (#2684) (1ccc3c0), closes #2684
  • docs(site): Add target blank to external links in site header (#2543) (f6c2288), closes #2543
  • docs(Splash): document splashFullScreen and splashImmersive config options (#2613) (c381202), closes #2613
  • docs(StatusBar): Fix typo in setOverlaysWebView usage (#2673) (05f23fb), closes #2673
  • docs(types): explain FilesystemDirectory types (#2663) (6a6cd8b), closes #2663
  • docs(update guide): fix targetSdkVersion instructions (#2585) (0b4ade8), closes #2585
  • docs(updating): Include beta 1 updating steps (#2629) (ece7c47), closes #2629

Chores

  • chore: make deploy script publish Android before iOS (#2520) (08a2ebc), closes #2520
  • chore: update electron core dependency (a37d1bf)
  • chore(android): remove unused launch_splash.xml (#2411) (8c9fe93), closes #2411
  • chore(android): target SDK version 29 (#2433) (4ff1943), closes #2433
  • chore(android): Update to latest Gradle plugin and wrapper (#2573) (221ce96), closes #2573
  • chore(android): use AndroidX to build (1480a6f)
  • chore(circleci): update Xcode and remove install-cocoapods job (#2402) (599c5c4), closes #2402
  • chore(cli): fix lint errors (#2479) (f2ff5ab), closes #2479
  • chore(cli): fix tests for newer node versions (#2403) (c40d993), closes #2403
  • chore(dependencies): Update package dependencies to 2.0.0 (#2686) (d708cfd), closes #2686
  • chore(electron): update template to use latest electron (#2492) (178eb65), closes #2492
  • chore(example): Fix Clipboard.read() (#2546) (6b88ba8), closes #2546
  • chore(example): update electron project to work with latest capacitor (#2485) (09fff9b), closes #2485
  • chore(ios): add platform to Podfile (#2463) (209e649), closes #2463
  • chore(ios): drop Xcode 10 support (#2472) (255a046), closes #2472
  • chore(ios): remove deprecated .swift_version file (#2464) (63e942e), closes #2464
  • chore(ios): Update app template to use iOS 5 (#2467) (f2facf6), closes #2467
  • chore(ios): update example app to use Swift 5 (#2471) (afd8554), closes #2471
  • chore(ios): Update plugin template to Swift 5 (#2468) (2f9c8e6), closes #2468
  • chore(tests): run lint on circleci (#2480) (2ec6cf5), closes #2480