{"id":2937,"date":"2019-07-16T15:38:35","date_gmt":"2019-07-16T15:38:35","guid":{"rendered":"https:\/\/ionicframework.com\/blog\/?p=2937"},"modified":"2020-10-16T19:09:21","modified_gmt":"2020-10-16T19:09:21","slug":"introducing-capacitor-support-for-ionic-appflow","status":"publish","type":"post","link":"https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow","title":{"rendered":"Introducing Capacitor Support for Ionic Appflow"},"content":{"rendered":"<p>Today we\u2019re excited to introduce support for Capacitor to Ionic Appflow, covering all features such as cloud-based native builds, real-time updates, and CI\/CD automation.<\/p>\n<p>If you\u2019re already a user of Appflow and Capacitor, feel free to skip down to the section below, <strong>Setting Up Capacitor<\/strong>, for instructions on how to get started.<\/p>\n<p><a href=\"https:\/\/ionicframework.com\/appflow\">Ionic Appflow<\/a> is a Mobile DevOps solution for developers and teams building apps with Ionic. It helps increase agility and app quality while speeding up time-to-market by automating key phases of the development lifecycle. By generating and streamlining the native app build process, shipping real-time updates, and organizing approval workflows, your team is free to focus on the good stuff (innovation).<\/p>\n<p><!--more--><\/p>\n<h2>Cordova vs. Capacitor<\/h2>\n<p>Appflow\u2019s cloud services initially used <a href=\"https:\/\/cordova.apache.org\">Apache Cordova<\/a>, an open source app runtime, to bundle Ionic apps into native iOS and Android apps. Cordova abstracts away the native side of apps and provides access to native features like Camera and geolocation through a library of plugins. It effectively empowers web developers to <a href=\"https:\/\/www.youtube.com\/watch?v=T263aRvIS50\">reuse their skills to build mobile apps<\/a> without having to learn native mobile platform technology.<\/p>\n<p>As part of leveraging Cordova, Appflow is able to provide:<\/p>\n<ul>\n<li>Reliable native builds in the cloud. No local dependency issues to worry about, and a one-stop shop for your team to track the latest iOS and Android app versions together.<\/li>\n<li>Real-time updates. Save time and make changes fast by pushing HTML, JavaScript, or CSS updates live to your end users.<\/li>\n<li>CI\/CD automation. With pre-built workflows and smart defaults, your team can automate their pipeline in minutes, with CI\/CD best practices already built in.<\/li>\n<\/ul>\n<p>Beginning today, we\u2019ve added support for Capacitor, our take on building cross-platform apps. It\u2019s available on <a href=\"https:\/\/ionicframework.com\/pricing#appflow\">all Appflow plans<\/a>.<\/p>\n<blockquote><p>\n  Note: Support for Cordova in Ionic Appflow will not be going away!\n<\/p><\/blockquote>\n<p><a href=\"https:\/\/capacitorjs.com\">Capacitor<\/a> is Ionic\u2019s new open source cross-platform app runtime that makes it easier to build web apps that run natively on iOS, Android, Electron, and the web.<\/p>\n<p>Capacitor builds on <a href=\"https:\/\/www.youtube.com\/watch?v=tDW2C6rcH6M\">the best parts of Cordova<\/a>, with some great added benefits, like more visibility into native project changes, better app maintainability as new mobile operating system versions are released, and easier native plugin development.<\/p>\n<h2>Using Capacitor with Appflow<\/h2>\n<p>In spirit, Capacitor and Cordova are very similar. Both use WebViews to run your Ionic app\u2019s web code and provide a structured way of exposing native functionality to your web code.<\/p>\n<p>However, there are some <a href=\"https:\/\/capacitorjs.com\/docs\/cordova#differences-between-capacitor-and-cordova\">key differences<\/a> between Cordova and Capacitor, which means changes to how Capacitor must be configured to use Appflow\u2019s services.<\/p>\n<p>Now, let\u2019s take a look at how to integrate each Appflow service with Capacitor.<\/p>\n<h2>Setting Up Capacitor<\/h2>\n<p>First, we need to add Capacitor to our web-based project. For the best experience, we recommend an Ionic app. From a terminal, run these commands:<\/p>\n<p><strong>New Ionic Project<\/strong><\/p>\n<pre><code class=\"language-shell\">ionic start myApp tabs --capacitor\ncd myApp\n<\/code><\/pre>\n<p><strong>Existing Ionic Project<\/strong><\/p>\n<pre><code class=\"language-shell\">cd myApp\nionic integrations enable capacitor\n\n# or for Angular projects\nng add @capacitor\/angular\n<\/code><\/pre>\n<p><strong>Initialize Capacitor<\/strong><\/p>\n<pre><code class=\"language-shell\"># appName is name of the app, appId is domain identifier (ex: com.example.app)\nnpx cap init [appName] [appId]\n\n# Build the project once\nionic build\n\n# Add native platforms\nnpx cap add ios\nnpx cap add android\n<\/code><\/pre>\n<h2>Package: Cloud Native Builds<\/h2>\n<p>Since Appflow\u2019s Package feature builds native binaries on the server, there are no different steps required for Capacitor. Simply <a href=\"https:\/\/ionicframework.com\/docs\/appflow\/quickstart\/package\">start a Package Build<\/a> as you normally would in Appflow, then download the binary once it finished building.<\/p>\n<h2>Automation: CI\/CD<\/h2>\n<p>Similar to Package, Appflow\u2019s Automation features run server side. The <a href=\"https:\/\/ionicframework.com\/docs\/appflow\/automation\/intro\">full suite<\/a> of CI\/CD features support Capacitor.<\/p>\n<h2>Deploy: Live Updates<\/h2>\n<p><iframe loading=\"lazy\" width=\"560\" height=\"315\" data-src=\"https:\/\/www.youtube.com\/embed\/3gj54AewoC8\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><\/p>\n<blockquote><p>\n  Demo Video: Using Appflow&#8217;s Live Deploy feature, you can ship real-time updates to your users.\n<\/p><\/blockquote>\n<p>Using Ionic Appflow\u2019s Live Deploy feature requires the installation of the Appflow SDK in your Ionic app.<\/p>\n<p>First, if your app hasn\u2019t been linked to Ionic Appflow, run the <code>ionic link<\/code> command then follow the prompts to connect the app to Appflow.<\/p>\n<p>Next, add the Deploy feature:<\/p>\n<pre><code class=\"language-shell\">ionic deploy add\n<\/code><\/pre>\n<p>Several prompts will walk you through the setup.<br \/>\n<strong>Appflow App ID:<\/strong> [Press Enter key to use the current Id or type in a different one]<br \/>\n<strong>Channel Name:<\/strong> [Enter desired channel name or \u201cMaster\u201d]<br \/>\n<strong>Update Method:<\/strong> [Select \u201cauto\u201d, \u201cbackground\u201d, or \u201cnone.\u201d]<\/p>\n<p>The Deploy plugin (<code>cordova-plugin-ionic<\/code>, named as such since it was created long before Capacitor) is successfully installed into your Ionic project and various variables are automatically configured in the native iOS\/Android projects for you.<\/p>\n<p>To see the Deploy feature in action, there\u2019s just a few more steps. Commit the changes to source control\/Appflow:<\/p>\n<pre><code class=\"language-shell\">git add .\ngit commit -m \u201cadded appflow deploy\u201d\ngit push\n<\/code><\/pre>\n<p>Your Capacitor app is now ready to use Appflow Deploy. <a href=\"https:\/\/ionicframework.com\/docs\/appflow\/quickstart\/deploy\">Follow the normal steps<\/a> to trigger a deploy build (now containing the Appflow SDK), then send a live update to your users.<\/p>\n<h2>Start Using Capacitor with Appflow Now<\/h2>\n<p>Appflow\u2019s new Capacitor support combines a modernized native app runtime with compelling DevOps features, resulting in a powerful solution for teams looking to build powerful Ionic mobile apps. Begin using Capacitor with Appflow today!<\/p>\n<p>We recently recorded a <a href=\"https:\/\/ionicframework.com\/resources\/webinars\/live-demo-building-capacitor-apps-in-appflow?utm_campaign=Webinar%20-%20Live%20Demo%3A%20Building%20Capacitor%20Apps%20in%20Appflow&amp;utm_source=Blog\">special live demo<\/a> that shows off how to migrate a Cordova app to Capacitor as well as all the features mentioned in this post, including Capacitor native builds, live deploys, and automations. Check it out:<\/p>\n<p><iframe loading=\"lazy\" width=\"560\" height=\"315\" data-src=\"https:\/\/www.youtube.com\/embed\/tkgNuSG5FJQ\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today we\u2019re excited to introduce support for Capacitor to Ionic Appflow, covering all features such as cloud-based native builds, real-time updates, and CI\/CD automation. If you\u2019re already a user of Appflow and Capacitor, feel free to skip down to the section below, Setting Up Capacitor, for instructions on how to get started. Ionic Appflow is [&hellip;]<\/p>\n","protected":false},"author":64,"featured_media":2938,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"publish_to_discourse":"","publish_post_category":"","wpdc_auto_publish_overridden":"","wpdc_topic_tags":"","wpdc_pin_topic":"","wpdc_pin_until":"","discourse_post_id":"","discourse_permalink":"","wpdc_publishing_response":"","wpdc_publishing_error":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[120],"tags":[128,151,115],"class_list":["post-2937","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-announcements","tag-appflow","tag-capacitor","tag-devops"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v23.0 (Yoast SEO v23.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Introducing Capacitor Support for Ionic Appflow - Ionic Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introducing Capacitor Support for Ionic Appflow\" \/>\n<meta property=\"og:description\" content=\"Today we\u2019re excited to introduce support for Capacitor to Ionic Appflow, covering all features such as cloud-based native builds, real-time updates, and CI\/CD automation. If you\u2019re already a user of Appflow and Capacitor, feel free to skip down to the section below, Setting Up Capacitor, for instructions on how to get started. Ionic Appflow is [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow\" \/>\n<meta property=\"og:site_name\" content=\"Ionic Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-07-16T15:38:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-10-16T19:09:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2019\/07\/capacitor-appflow-feature.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1600\" \/>\n\t<meta property=\"og:image:height\" content=\"880\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Nick Hyatt\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@NicholasPHyatt\" \/>\n<meta name=\"twitter:site\" content=\"@ionicframework\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nick Hyatt\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow#article\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow\"},\"author\":{\"name\":\"Nick Hyatt\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/42a5ed64b6e0eff12a1fe57c21d4ac82\"},\"headline\":\"Introducing Capacitor Support for Ionic Appflow\",\"datePublished\":\"2019-07-16T15:38:35+00:00\",\"dateModified\":\"2020-10-16T19:09:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow\"},\"wordCount\":822,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/ionic.io\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2019\/07\/capacitor-appflow-feature.png\",\"keywords\":[\"Appflow\",\"Capacitor\",\"DevOps\"],\"articleSection\":[\"Announcements\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow\",\"url\":\"https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow\",\"name\":\"Introducing Capacitor Support for Ionic Appflow - Ionic Blog\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow#primaryimage\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2019\/07\/capacitor-appflow-feature.png\",\"datePublished\":\"2019-07-16T15:38:35+00:00\",\"dateModified\":\"2020-10-16T19:09:21+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow#primaryimage\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2019\/07\/capacitor-appflow-feature.png\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2019\/07\/capacitor-appflow-feature.png\",\"width\":1600,\"height\":880,\"caption\":\"capacitor-appflow-support\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/ionic.io\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Introducing Capacitor Support for Ionic Appflow\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/ionic.io\/blog\/#website\",\"url\":\"https:\/\/ionic.io\/blog\/\",\"name\":\"ionic.io\/blog\",\"description\":\"Build amazing native and progressive web apps with the web\",\"publisher\":{\"@id\":\"https:\/\/ionic.io\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/ionic.io\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/ionic.io\/blog\/#organization\",\"name\":\"Ionic\",\"url\":\"https:\/\/ionic.io\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png\",\"width\":1920,\"height\":854,\"caption\":\"Ionic\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/ionicframework\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/42a5ed64b6e0eff12a1fe57c21d4ac82\",\"name\":\"Nick Hyatt\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/Nick-Hyatt-Headshot-150x150.jpeg\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/Nick-Hyatt-Headshot-150x150.jpeg\",\"caption\":\"Nick Hyatt\"},\"sameAs\":[\"https:\/\/x.com\/NicholasPHyatt\"],\"url\":\"https:\/\/ionic.io\/blog\/author\/nick\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Introducing Capacitor Support for Ionic Appflow - Ionic Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow","og_locale":"en_US","og_type":"article","og_title":"Introducing Capacitor Support for Ionic Appflow","og_description":"Today we\u2019re excited to introduce support for Capacitor to Ionic Appflow, covering all features such as cloud-based native builds, real-time updates, and CI\/CD automation. If you\u2019re already a user of Appflow and Capacitor, feel free to skip down to the section below, Setting Up Capacitor, for instructions on how to get started. Ionic Appflow is [&hellip;]","og_url":"https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow","og_site_name":"Ionic Blog","article_published_time":"2019-07-16T15:38:35+00:00","article_modified_time":"2020-10-16T19:09:21+00:00","og_image":[{"width":1600,"height":880,"url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2019\/07\/capacitor-appflow-feature.png","type":"image\/png"}],"author":"Nick Hyatt","twitter_card":"summary_large_image","twitter_creator":"@NicholasPHyatt","twitter_site":"@ionicframework","twitter_misc":{"Written by":"Nick Hyatt","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow#article","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow"},"author":{"name":"Nick Hyatt","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/42a5ed64b6e0eff12a1fe57c21d4ac82"},"headline":"Introducing Capacitor Support for Ionic Appflow","datePublished":"2019-07-16T15:38:35+00:00","dateModified":"2020-10-16T19:09:21+00:00","mainEntityOfPage":{"@id":"https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow"},"wordCount":822,"commentCount":0,"publisher":{"@id":"https:\/\/ionic.io\/blog\/#organization"},"image":{"@id":"https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow#primaryimage"},"thumbnailUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2019\/07\/capacitor-appflow-feature.png","keywords":["Appflow","Capacitor","DevOps"],"articleSection":["Announcements"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow","url":"https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow","name":"Introducing Capacitor Support for Ionic Appflow - Ionic Blog","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow#primaryimage"},"image":{"@id":"https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow#primaryimage"},"thumbnailUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2019\/07\/capacitor-appflow-feature.png","datePublished":"2019-07-16T15:38:35+00:00","dateModified":"2020-10-16T19:09:21+00:00","breadcrumb":{"@id":"https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow#primaryimage","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2019\/07\/capacitor-appflow-feature.png","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2019\/07\/capacitor-appflow-feature.png","width":1600,"height":880,"caption":"capacitor-appflow-support"},{"@type":"BreadcrumbList","@id":"https:\/\/ionic.io\/blog\/introducing-capacitor-support-for-ionic-appflow#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ionic.io\/blog"},{"@type":"ListItem","position":2,"name":"Introducing Capacitor Support for Ionic Appflow"}]},{"@type":"WebSite","@id":"https:\/\/ionic.io\/blog\/#website","url":"https:\/\/ionic.io\/blog\/","name":"ionic.io\/blog","description":"Build amazing native and progressive web apps with the web","publisher":{"@id":"https:\/\/ionic.io\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ionic.io\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/ionic.io\/blog\/#organization","name":"Ionic","url":"https:\/\/ionic.io\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png","width":1920,"height":854,"caption":"Ionic"},"image":{"@id":"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/ionicframework"]},{"@type":"Person","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/42a5ed64b6e0eff12a1fe57c21d4ac82","name":"Nick Hyatt","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/Nick-Hyatt-Headshot-150x150.jpeg","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/11\/Nick-Hyatt-Headshot-150x150.jpeg","caption":"Nick Hyatt"},"sameAs":["https:\/\/x.com\/NicholasPHyatt"],"url":"https:\/\/ionic.io\/blog\/author\/nick"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2019\/07\/capacitor-appflow-feature.png","_links":{"self":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/2937","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/users\/64"}],"replies":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/comments?post=2937"}],"version-history":[{"count":0,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/2937\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/media\/2938"}],"wp:attachment":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/media?parent=2937"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/categories?post=2937"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/tags?post=2937"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}