{"id":3931,"date":"2021-11-23T09:00:00","date_gmt":"2021-11-23T09:00:00","guid":{"rendered":"https:\/\/ionicframework.com\/blog\/?p=3931"},"modified":"2021-11-23T14:14:37","modified_gmt":"2021-11-23T14:14:37","slug":"capacitor-community-plugins-showcase","status":"publish","type":"post","link":"https:\/\/ionic.io\/blog\/capacitor-community-plugins-showcase","title":{"rendered":"Capacitor Community Plugin Showcase"},"content":{"rendered":"<p>At Ionic, we love our open-source community. There are great, open-source Capacitor plugins being built and used every day. Today, I wanted to showcase some excellent, community-maintained plugins on the <a href=\"https:\/\/github.com\/capacitor-community\">Capacitor Community GitHub organization<\/a>.<\/p>\n<p><!--more--><\/p>\n<h2>Firebase Cloud Messaging<\/h2>\n<p>Capacitor already uses <a href=\"https:\/\/firebase.google.com\/\">Firebase<\/a> for sending push notifications with the official push notifications plugin. But, the community FCM plugin, maintained by <a href=\"https:\/\/github.com\/stewones\">Stewan Silva<\/a> and <a href=\"https:\/\/github.com\/danielprrazevedo\">Daniel Pereira<\/a>, takes it a step further.<\/p>\n<p>With the FCM plugin, you can opt your users into Firebase \u201ctopics.\u201d After subscribing your users to different topics, you can use Firebase to send push notifications to specific topics rather than your entire userbase. This allows you to send targeted push messages rather than a single push message.<\/p>\n<p>To set up FCM in your Capacitor application, you have to install the official Capacitor [push notifications] plugin as well as the FCM community plugin.<\/p>\n<pre><code>npm i @capacitor\/push-notifications\nnpm i @capacitor-community\/fcm\n<\/code><\/pre>\n<p>Once you\u2019ve installed the plugins, you can add FCM capabilities on top of the official push notification plugin. In the code snippet below, we\u2019ll enroll the application to the \u201capple\u201d topic if it is an iOS device, and the \u201cgoogle\u201d topic if it is an Android device.<\/p>\n<pre><code class=\"language-javascript\">import { PushNotifications } from &quot;@capacitor\/push-notifications&quot;;\nimport { FCM } from &quot;@capacitor-community\/fcm&quot;;\nImport { Capacitor } from \u201c@capacitor\/core\u201d;\n\n\/\/ set up base push notifications with Capacitor\nawait PushNotifications.requestPermissions();\nawait PushNotifications.register();\n\nlet topic;\nif (Capacitor.getPlatform() === \u2018ios\u2019) {\n  topic = \u2018apple\u2019\n} else if (Capacitor.getPlatform() === \u2018android\u2019) {\n  topic = \u2018google\u2019\n}\n\n\n\/\/ set up Firebase Cloud Messaging topics\nFCM.subscribeTo({ topic  })\n  .then(r =&amp;gt; console.log(`subscribed to topic \u201c${topic}\u201d`))\n  .catch(err =&amp;gt; console.log(err));\n<\/code><\/pre>\n<p>For more information on topics, check out the Firebase documentation for <a href=\"https:\/\/firebase.google.com\/docs\/cloud-messaging\/ios\/topic-messaging\">iOS<\/a> and <a href=\"https:\/\/firebase.google.com\/docs\/cloud-messaging\/android\/topic-messaging\">Android<\/a>; and for more information on the Capacitor community FCM plugin, check out the <a href=\"https:\/\/github.com\/capacitor-community\/fcm\/\">GitHub repo<\/a> and <a href=\"https:\/\/github.com\/capacitor-community\/fcm\/\">example<\/a>.<\/p>\n<h2>Electron<\/h2>\n<p>Capacitor officially supports iOS, Android, Web, and <a href=\"https:\/\/ionic.io\/docs\/windows\">Windows<\/a>. However, with the <a href=\"https:\/\/github.com\/capacitor-community\/electron\/\">community Electron platform<\/a> built by <a href=\"https:\/\/github.com\/IT-MikeS\">Mike Summerfeldt<\/a>, you can create a Capacitor application that also targets <a href=\"https:\/\/www.electronjs.org\/\">Electron<\/a>. Similar to the Android and iOS platforms, Capacitor Electron has a <a href=\"https:\/\/capacitor-community.github.io\/electron\/docs\/creatingplugins\">Plugin API for creating Capacitor plugins with Electron<\/a>.<\/p>\n<p>Adding Electron support is exactly the same as adding Android or iOS support when first scaffolding your Capacitor project.<\/p>\n<pre><code>npm i @capacitor-community\/electron\nnpx cap add @capacitor-community\/electron\n<\/code><\/pre>\n<p>An Electron project will be created in a folder titled <code>electron\/<\/code> at the root of your project. The Capacitor CLI will recognize the Electron platform and allow you to run CLI commands on the electron project like Android and iOS.<\/p>\n<pre><code>npx cap open @capacitor-community\/electron\n<\/code><\/pre>\n<p>The <a href=\"https:\/\/capacitor-community.github.io\/electron\/\">Capacitor Electron docs<\/a> have more information on getting started and creating plugins for the community Electron platform.<\/p>\n<h2>Contacts<\/h2>\n<p>One thing that mobile apps can do that web apps can&#8217;t do is read and write from a contact list. The community Contacts plugin, built by <a href=\"https:\/\/github.com\/idrimi\">Jonathan Gerber<\/a>, exposes the Android and iOS APIs for modifying a user&#8217;s contact list.<\/p>\n<p>To add the community Contacts plugin to your Capacitor project, install it from npm.<\/p>\n<pre><code>npm i @capacitor-community\/contacts\n<\/code><\/pre>\n<p>After modifying the project&#8217;s permissions for <a href=\"https:\/\/github.com\/capacitor-community\/contacts#android-notes\">Android<\/a> and <a href=\"https:\/\/github.com\/capacitor-community\/contacts#ios\">iOS<\/a> to properly notify the end users that you&#8217;re using their contact list, using the Contacts plugin can be implemented in a few lines of code.<\/p>\n<pre><code class=\"language-javascript\">import { Contacts } from &#039;@capacitor-community\/contacts&#039;\n\nconst contactInfo = {\n  givenName: &quot;Thomas&quot;,\n  familyName: &quot;Vidas&quot;,\n};\nContacts.addContact(contactInfo).then(() =&gt; {\n  \/\/ contact is saved!\n});\n<\/code><\/pre>\n<p>The <a href=\"https:\/\/github.com\/capacitor-community\/contacts\">community Contacts plugin GitHub repo<\/a> has more examples of reading and writing to and from the system contact list.<\/p>\n<h2>Apple Sign-In<\/h2>\n<p>Sign In With Apple launched with iOS 13 and is quickly becoming a popular OAuth and OIDC login alongside Facebook and Google login methods. Having a &#8220;Sign In With Apple&#8221; button is a great option for allowing users to authenticate with your app. With the community \u201cApple Sign-In\u201d Plugin, maintained by <a href=\"https:\/\/github.com\/epicshaggy\">Jose Martinez<\/a> and <a href=\"https:\/\/github.com\/lcsoka\">Laszlo Csoka<\/a>, adding this login option becomes a single function.<\/p>\n<p>To add the <a href=\"https:\/\/github.com\/capacitor-community\/apple-sign-in\">community Apple Sign-In plugin<\/a> to your Capacitor project, install it using npm.<\/p>\n<pre><code>npm i @capacitor-community\/apple-sign-in\n<\/code><\/pre>\n<p>Once the community Apple Sign-In plugin has been added to the project, it&#8217;s only a single function call from your Capacitor application to start the authorization process with Apple.<\/p>\n<pre><code class=\"language-javascript\">import { SignInWithApple } from &#039;@capacitor-community\/apple-sign-in&#039;;\n\nconst options = {\n  clientId: &#039;com.your.webservice&#039;,\n  redirectURI: &#039;https:\/\/www.yourfrontend.com\/login&#039;,\n  scopes: &#039;email name&#039;,\n  state: &#039;12345&#039;,\n  nonce: &#039;nonce&#039;,\n};\n\nSignInWithApple.authorize(options).then(result =&gt; {\n  \/\/ Handle successful login\n}).catch(error =&gt; {\n  \/\/ Handle error\n});\n<\/code><\/pre>\n<p>For more information on how to set up the backend for &#8220;Sign In With Apple,&#8221; check out <a href=\"https:\/\/developer.apple.com\/sign-in-with-apple\/get-started\/\">Apple&#8217;s documentation<\/a>.<\/p>\n<h2>And There&#8217;s More!<\/h2>\n<p>There are dozens of projects in the <a href=\"https:\/\/github.com\/capacitor-community\/\">Capacitor Community GitHub organization<\/a> that are maintained by the Ionic community members. We&#8217;re always looking to showcase great open-source Capacitor community plugins and projects to help other developers succeed when using Capacitor. Be sure to check out all of the great projects \u2014 there&#8217;s probably a plugin or two you&#8217;ll want to use!<\/p>\n<h2>Want to Contribute?<\/h2>\n<p>If you have a plugin that you&#8217;d like to add to the Capacitor Community, <a href=\"https:\/\/github.com\/capacitor-community\/proposals\/issues\">open an issue on the Capacitor Community Proposal repo<\/a>, and the Capacitor team will review and add it to the GitHub and npm organizations. We&#8217;re always excited to elevate open source to the next level. \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>At Ionic, we love our open-source community. There are great, open-source Capacitor plugins being built and used every day. Today, I wanted to showcase some excellent, community-maintained plugins on the Capacitor Community GitHub organization.<\/p>\n","protected":false},"author":90,"featured_media":3936,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"publish_to_discourse":"1","publish_post_category":"26","wpdc_auto_publish_overridden":"","wpdc_topic_tags":"","wpdc_pin_topic":"","wpdc_pin_until":"","discourse_post_id":"537265","discourse_permalink":"https:\/\/forum.ionicframework.com\/t\/capacitor-community-plugin-showcase\/217645","wpdc_publishing_response":"","wpdc_publishing_error":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[121],"tags":[151,221],"class_list":["post-3931","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-engineering","tag-capacitor","tag-plugins"],"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>Capacitor Community Plugin Showcase - Ionic Blog<\/title>\n<meta name=\"description\" content=\"At Ionic, we love our open-source community. There are great, open-source Capacitor community plugins being built and used every day.\" \/>\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\/capacitor-community-plugins-showcase\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Capacitor Community Plugin Showcase\" \/>\n<meta property=\"og:description\" content=\"At Ionic, we love our open-source community. There are great, open-source Capacitor community plugins being built and used every day.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ionic.io\/blog\/capacitor-community-plugins-showcase\" \/>\n<meta property=\"og:site_name\" content=\"Ionic Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-11-23T09:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-11-23T14:14:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/11\/capacitor-community-plugins-feature-image.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=\"Thomas Vidas\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ThomasVidas\" \/>\n<meta name=\"twitter:site\" content=\"@ionicframework\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Thomas Vidas\" \/>\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\/capacitor-community-plugins-showcase#article\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/capacitor-community-plugins-showcase\"},\"author\":{\"name\":\"Thomas Vidas\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/2191fc27ddf1fb0e68acad42e1f71bd2\"},\"headline\":\"Capacitor Community Plugin Showcase\",\"datePublished\":\"2021-11-23T09:00:00+00:00\",\"dateModified\":\"2021-11-23T14:14:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/ionic.io\/blog\/capacitor-community-plugins-showcase\"},\"wordCount\":714,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/ionic.io\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/capacitor-community-plugins-showcase#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/11\/capacitor-community-plugins-feature-image.png\",\"keywords\":[\"Capacitor\",\"plugins\"],\"articleSection\":[\"Engineering\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/ionic.io\/blog\/capacitor-community-plugins-showcase#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/ionic.io\/blog\/capacitor-community-plugins-showcase\",\"url\":\"https:\/\/ionic.io\/blog\/capacitor-community-plugins-showcase\",\"name\":\"Capacitor Community Plugin Showcase - Ionic Blog\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/ionic.io\/blog\/capacitor-community-plugins-showcase#primaryimage\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/capacitor-community-plugins-showcase#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/11\/capacitor-community-plugins-feature-image.png\",\"datePublished\":\"2021-11-23T09:00:00+00:00\",\"dateModified\":\"2021-11-23T14:14:37+00:00\",\"description\":\"At Ionic, we love our open-source community. There are great, open-source Capacitor community plugins being built and used every day.\",\"breadcrumb\":{\"@id\":\"https:\/\/ionic.io\/blog\/capacitor-community-plugins-showcase#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/ionic.io\/blog\/capacitor-community-plugins-showcase\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/capacitor-community-plugins-showcase#primaryimage\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/11\/capacitor-community-plugins-feature-image.png\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/11\/capacitor-community-plugins-feature-image.png\",\"width\":1600,\"height\":880,\"caption\":\"capacitor community plugins\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/ionic.io\/blog\/capacitor-community-plugins-showcase#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/ionic.io\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Capacitor Community Plugin Showcase\"}]},{\"@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\/2191fc27ddf1fb0e68acad42e1f71bd2\",\"name\":\"Thomas Vidas\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/11\/avatar-thomas-150x150.jpeg\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/11\/avatar-thomas-150x150.jpeg\",\"caption\":\"Thomas Vidas\"},\"sameAs\":[\"https:\/\/x.com\/ThomasVidas\"],\"url\":\"https:\/\/ionic.io\/blog\/author\/thomasionic-io\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Capacitor Community Plugin Showcase - Ionic Blog","description":"At Ionic, we love our open-source community. There are great, open-source Capacitor community plugins being built and used every day.","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\/capacitor-community-plugins-showcase","og_locale":"en_US","og_type":"article","og_title":"Capacitor Community Plugin Showcase","og_description":"At Ionic, we love our open-source community. There are great, open-source Capacitor community plugins being built and used every day.","og_url":"https:\/\/ionic.io\/blog\/capacitor-community-plugins-showcase","og_site_name":"Ionic Blog","article_published_time":"2021-11-23T09:00:00+00:00","article_modified_time":"2021-11-23T14:14:37+00:00","og_image":[{"width":1600,"height":880,"url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/11\/capacitor-community-plugins-feature-image.png","type":"image\/png"}],"author":"Thomas Vidas","twitter_card":"summary_large_image","twitter_creator":"@ThomasVidas","twitter_site":"@ionicframework","twitter_misc":{"Written by":"Thomas Vidas","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ionic.io\/blog\/capacitor-community-plugins-showcase#article","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/capacitor-community-plugins-showcase"},"author":{"name":"Thomas Vidas","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/2191fc27ddf1fb0e68acad42e1f71bd2"},"headline":"Capacitor Community Plugin Showcase","datePublished":"2021-11-23T09:00:00+00:00","dateModified":"2021-11-23T14:14:37+00:00","mainEntityOfPage":{"@id":"https:\/\/ionic.io\/blog\/capacitor-community-plugins-showcase"},"wordCount":714,"commentCount":0,"publisher":{"@id":"https:\/\/ionic.io\/blog\/#organization"},"image":{"@id":"https:\/\/ionic.io\/blog\/capacitor-community-plugins-showcase#primaryimage"},"thumbnailUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/11\/capacitor-community-plugins-feature-image.png","keywords":["Capacitor","plugins"],"articleSection":["Engineering"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ionic.io\/blog\/capacitor-community-plugins-showcase#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ionic.io\/blog\/capacitor-community-plugins-showcase","url":"https:\/\/ionic.io\/blog\/capacitor-community-plugins-showcase","name":"Capacitor Community Plugin Showcase - Ionic Blog","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ionic.io\/blog\/capacitor-community-plugins-showcase#primaryimage"},"image":{"@id":"https:\/\/ionic.io\/blog\/capacitor-community-plugins-showcase#primaryimage"},"thumbnailUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/11\/capacitor-community-plugins-feature-image.png","datePublished":"2021-11-23T09:00:00+00:00","dateModified":"2021-11-23T14:14:37+00:00","description":"At Ionic, we love our open-source community. There are great, open-source Capacitor community plugins being built and used every day.","breadcrumb":{"@id":"https:\/\/ionic.io\/blog\/capacitor-community-plugins-showcase#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ionic.io\/blog\/capacitor-community-plugins-showcase"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/capacitor-community-plugins-showcase#primaryimage","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/11\/capacitor-community-plugins-feature-image.png","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/11\/capacitor-community-plugins-feature-image.png","width":1600,"height":880,"caption":"capacitor community plugins"},{"@type":"BreadcrumbList","@id":"https:\/\/ionic.io\/blog\/capacitor-community-plugins-showcase#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ionic.io\/blog"},{"@type":"ListItem","position":2,"name":"Capacitor Community Plugin Showcase"}]},{"@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\/2191fc27ddf1fb0e68acad42e1f71bd2","name":"Thomas Vidas","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/11\/avatar-thomas-150x150.jpeg","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/11\/avatar-thomas-150x150.jpeg","caption":"Thomas Vidas"},"sameAs":["https:\/\/x.com\/ThomasVidas"],"url":"https:\/\/ionic.io\/blog\/author\/thomasionic-io"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/11\/capacitor-community-plugins-feature-image.png","_links":{"self":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/3931","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\/90"}],"replies":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/comments?post=3931"}],"version-history":[{"count":0,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/3931\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/media\/3936"}],"wp:attachment":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/media?parent=3931"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/categories?post=3931"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/tags?post=3931"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}