{"id":4305,"date":"2022-07-13T15:51:09","date_gmt":"2022-07-13T15:51:09","guid":{"rendered":"https:\/\/ionicframework.com\/blog\/?p=4305"},"modified":"2022-07-13T17:36:26","modified_gmt":"2022-07-13T17:36:26","slug":"announcing-portals-for-react-native","status":"publish","type":"post","link":"https:\/\/ionic.io\/blog\/announcing-portals-for-react-native","title":{"rendered":"Announcing Portals for React Native"},"content":{"rendered":"<p>Today we are thrilled to announce <a href=\"https:\/\/ionic.io\/docs\/portals\/getting-started\/react-native\">React Native support<\/a> for <a href=\"https:\/\/ionic.io\/portals\">Portals<\/a>, our new SDK for building mobile apps that utilize a micro-frontend architecture to scale app development across teams in large organizations.<\/p>\n<p>Portals makes it possible to embed micro-frontend web experiences into a single React Native app through a drop-in React Native component. A Portals component hosts a Web View but extends it with powerful functionality such as the ability to expose native functionality to each Web View in a controlled, safe manner, and best-practices around implementing the Web View lifecycle. Most importantly, each Portal can be updated remotely in real-time, so teams can ship bug fixes and new features in parallel and as soon as they&#8217;re ready.<\/p>\n<p>With this, Portals for React Native allows React Native teams to:<\/p>\n<ul>\n<li>Share React web code with their React Native mobile app and enable React web teams to contribute to the app<\/li>\n<li>Embed existing web experiences in a seamless, high-quality way that feels just as native as the rest of the app<\/li>\n<li>Ship faster by enabling teams to publish updates in parallel and in real-time, without the bottleneck of traditional mobile releases<\/li>\n<\/ul>\n<p>Portals also supports traditional iOS and Android apps and hybrid apps, and can be used across a variety of mobile frameworks and technologies a team may be using. Portals is in production in a number of significant mobile apps built by large teams, helping them scale and ship faster.<\/p>\n<p><!--more--><\/p>\n<h2>Using Portals in React Native<\/h2>\n<p>Adding a Portal to a React Native view is just like any other React Native component. First, configure a portal (this is typically done in <code>index.js<\/code>):<\/p>\n<pre><code class=\"language-typescript\">import { addPortal } from &#039;@ionic\/portals-react-native&#039;;\nconst helloPortal = {\n  \/\/ A unique name to reference later\n  name: &#039;hello&#039;,\n  \/\/ This is the location of your web bundle relative to the asset directory in Android and Bundle.main in iOS\n  \/\/ This will default to the name of the portal\n  startDir: &#039;portals\/hello&#039;, \n  \/\/ Any initial state to be provided to a Portal if needed\n  initialContext: {\n    greeting: &#039;Hello, world!&#039;\n  }\n};\n\naddPortal(helloPortal);\n<\/code><\/pre>\n<p>Then, in the file for the screen the Portal will display in, add the component:<\/p>\n<pre><code class=\"language-typescript\">import { PortalView } from &#039;@ionic\/portals-react-native&#039;;\n\n&lt;PortalView \n  \/\/ The name of the portal to be used in the view\n  name=&#039;hello&#039; \n\n  \/\/ Set any initial context you may want to override.\n  initialContext={{ greeting: &#039;Goodbye!&#039; }}\n\n  \/\/ Setting a size is required\n  style={{ flex: 1, height: 300 }} \n  \/&gt;\n<\/code><\/pre>\n<p>A Portal component can be placed anywhere you like, such as in a Modal, as a screen in a navigation flow, or a sub-region on an existing screen. A typical Portals-based app architecture might look like this (substitute React Native for Swift):<\/p>\n<p><a href=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/09\/portals-device-diagram.png\"><img loading=\"lazy\" decoding=\"async\" width=\"647\" height=\"1024\" data-src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/09\/portals-device-diagram-647x1024.png\" alt=\"portals-device-diagram\" class=\"alignnone size-large wp-image-3848 lazyload\" data-srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/09\/portals-device-diagram-647x1024.png 647w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/09\/portals-device-diagram-189x300.png 189w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/09\/portals-device-diagram-768x1216.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/09\/portals-device-diagram-970x1536.png 970w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/09\/portals-device-diagram.png 1276w\" data-sizes=\"auto, (max-width: 647px) 100vw, 647px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 647px; --smush-placeholder-aspect-ratio: 647\/1024;\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"647\" height=\"1024\" src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/09\/portals-device-diagram-647x1024.png\" alt=\"portals-device-diagram\" class=\"alignnone size-large wp-image-3848\" srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/09\/portals-device-diagram-647x1024.png 647w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/09\/portals-device-diagram-189x300.png 189w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/09\/portals-device-diagram-768x1216.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/09\/portals-device-diagram-970x1536.png 970w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/09\/portals-device-diagram.png 1276w\" sizes=\"auto, (max-width: 647px) 100vw, 647px\" \/><\/noscript><\/a><\/p>\n<h2>Getting started<\/h2>\n<p>To help React Native teams start using Portals, we&#8217;ve provided a number of resources. First, explore the <a href=\"https:\/\/ionic.io\/docs\/portals\/getting-started\/react-native\">Getting Started with Portals for React Native<\/a> documentation. Then, check out our <a href=\"https:\/\/ionic.io\/docs\/portals\/examples\/ecommerce-react-native\">React Native E-commerce App Demo<\/a> for a real app using Portals.<\/p>\n<p>To learn more about Portals and why we built it, explore the <a href=\"https:\/\/ionic.io\/portals\">Portals<\/a> site or the <a href=\"https:\/\/ionic.io\/docs\/portals\/\">documentation<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today we are thrilled to announce React Native support for Portals, our new SDK for building mobile apps that utilize a micro-frontend architecture to scale app development across teams in large organizations. Portals makes it possible to embed micro-frontend web experiences into a single React Native app through a drop-in React Native component. A Portals [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":4306,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"publish_to_discourse":"0","publish_post_category":"31","wpdc_auto_publish_overridden":"","wpdc_topic_tags":"","wpdc_pin_topic":"","wpdc_pin_until":"","discourse_post_id":"549778","discourse_permalink":"https:\/\/forum.ionicframework.com\/t\/announcing-portals-for-react-native\/225015","wpdc_publishing_response":"","wpdc_publishing_error":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1,120],"tags":[227,136,155],"class_list":["post-4305","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-all","category-announcements","tag-portals","tag-react","tag-react-native"],"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>Announcing Portals for React Native - Ionic Blog<\/title>\n<meta name=\"description\" content=\"Ship faster with micro-frontends for React Native mobile apps using Ionic Portals. Share React web code and enable teams to ship in parallel.\" \/>\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\/announcing-portals-for-react-native\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Announcing Portals for React Native\" \/>\n<meta property=\"og:description\" content=\"Ship faster with micro-frontends for React Native mobile apps using Ionic Portals. Share React web code and enable teams to ship in parallel.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ionic.io\/blog\/announcing-portals-for-react-native\" \/>\n<meta property=\"og:site_name\" content=\"Ionic Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-07-13T15:51:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-07-13T17:36:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2022\/07\/portals-react-native-feature-image-1.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=\"Max Lynch\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@maxlynch\" \/>\n<meta name=\"twitter:site\" content=\"@ionicframework\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Max Lynch\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/ionic.io\/blog\/announcing-portals-for-react-native#article\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/announcing-portals-for-react-native\"},\"author\":{\"name\":\"Max Lynch\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/91f360cffbd804a464b0c4a87b5c5f1e\"},\"headline\":\"Announcing Portals for React Native\",\"datePublished\":\"2022-07-13T15:51:09+00:00\",\"dateModified\":\"2022-07-13T17:36:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/ionic.io\/blog\/announcing-portals-for-react-native\"},\"wordCount\":391,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/ionic.io\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/announcing-portals-for-react-native#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2022\/07\/portals-react-native-feature-image-1.png\",\"keywords\":[\"Portals\",\"react\",\"react native\"],\"articleSection\":[\"All\",\"Announcements\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/ionic.io\/blog\/announcing-portals-for-react-native#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/ionic.io\/blog\/announcing-portals-for-react-native\",\"url\":\"https:\/\/ionic.io\/blog\/announcing-portals-for-react-native\",\"name\":\"Announcing Portals for React Native - Ionic Blog\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/ionic.io\/blog\/announcing-portals-for-react-native#primaryimage\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/announcing-portals-for-react-native#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2022\/07\/portals-react-native-feature-image-1.png\",\"datePublished\":\"2022-07-13T15:51:09+00:00\",\"dateModified\":\"2022-07-13T17:36:26+00:00\",\"description\":\"Ship faster with micro-frontends for React Native mobile apps using Ionic Portals. Share React web code and enable teams to ship in parallel.\",\"breadcrumb\":{\"@id\":\"https:\/\/ionic.io\/blog\/announcing-portals-for-react-native#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/ionic.io\/blog\/announcing-portals-for-react-native\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/announcing-portals-for-react-native#primaryimage\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2022\/07\/portals-react-native-feature-image-1.png\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2022\/07\/portals-react-native-feature-image-1.png\",\"width\":1600,\"height\":880},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/ionic.io\/blog\/announcing-portals-for-react-native#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/ionic.io\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Announcing Portals for React Native\"}]},{\"@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\/91f360cffbd804a464b0c4a87b5c5f1e\",\"name\":\"Max Lynch\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/05\/max-avatar-150x150.jpg\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/05\/max-avatar-150x150.jpg\",\"caption\":\"Max Lynch\"},\"description\":\"CEO\",\"sameAs\":[\"http:\/\/twitter.com\/maxlynch\",\"https:\/\/x.com\/maxlynch\"],\"url\":\"https:\/\/ionic.io\/blog\/author\/max\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Announcing Portals for React Native - Ionic Blog","description":"Ship faster with micro-frontends for React Native mobile apps using Ionic Portals. Share React web code and enable teams to ship in parallel.","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\/announcing-portals-for-react-native","og_locale":"en_US","og_type":"article","og_title":"Announcing Portals for React Native","og_description":"Ship faster with micro-frontends for React Native mobile apps using Ionic Portals. Share React web code and enable teams to ship in parallel.","og_url":"https:\/\/ionic.io\/blog\/announcing-portals-for-react-native","og_site_name":"Ionic Blog","article_published_time":"2022-07-13T15:51:09+00:00","article_modified_time":"2022-07-13T17:36:26+00:00","og_image":[{"width":1600,"height":880,"url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2022\/07\/portals-react-native-feature-image-1.png","type":"image\/png"}],"author":"Max Lynch","twitter_card":"summary_large_image","twitter_creator":"@maxlynch","twitter_site":"@ionicframework","twitter_misc":{"Written by":"Max Lynch","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ionic.io\/blog\/announcing-portals-for-react-native#article","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/announcing-portals-for-react-native"},"author":{"name":"Max Lynch","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/91f360cffbd804a464b0c4a87b5c5f1e"},"headline":"Announcing Portals for React Native","datePublished":"2022-07-13T15:51:09+00:00","dateModified":"2022-07-13T17:36:26+00:00","mainEntityOfPage":{"@id":"https:\/\/ionic.io\/blog\/announcing-portals-for-react-native"},"wordCount":391,"commentCount":0,"publisher":{"@id":"https:\/\/ionic.io\/blog\/#organization"},"image":{"@id":"https:\/\/ionic.io\/blog\/announcing-portals-for-react-native#primaryimage"},"thumbnailUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2022\/07\/portals-react-native-feature-image-1.png","keywords":["Portals","react","react native"],"articleSection":["All","Announcements"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ionic.io\/blog\/announcing-portals-for-react-native#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ionic.io\/blog\/announcing-portals-for-react-native","url":"https:\/\/ionic.io\/blog\/announcing-portals-for-react-native","name":"Announcing Portals for React Native - Ionic Blog","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ionic.io\/blog\/announcing-portals-for-react-native#primaryimage"},"image":{"@id":"https:\/\/ionic.io\/blog\/announcing-portals-for-react-native#primaryimage"},"thumbnailUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2022\/07\/portals-react-native-feature-image-1.png","datePublished":"2022-07-13T15:51:09+00:00","dateModified":"2022-07-13T17:36:26+00:00","description":"Ship faster with micro-frontends for React Native mobile apps using Ionic Portals. Share React web code and enable teams to ship in parallel.","breadcrumb":{"@id":"https:\/\/ionic.io\/blog\/announcing-portals-for-react-native#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ionic.io\/blog\/announcing-portals-for-react-native"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/announcing-portals-for-react-native#primaryimage","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2022\/07\/portals-react-native-feature-image-1.png","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2022\/07\/portals-react-native-feature-image-1.png","width":1600,"height":880},{"@type":"BreadcrumbList","@id":"https:\/\/ionic.io\/blog\/announcing-portals-for-react-native#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ionic.io\/blog"},{"@type":"ListItem","position":2,"name":"Announcing Portals for React Native"}]},{"@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\/91f360cffbd804a464b0c4a87b5c5f1e","name":"Max Lynch","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/05\/max-avatar-150x150.jpg","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/05\/max-avatar-150x150.jpg","caption":"Max Lynch"},"description":"CEO","sameAs":["http:\/\/twitter.com\/maxlynch","https:\/\/x.com\/maxlynch"],"url":"https:\/\/ionic.io\/blog\/author\/max"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2022\/07\/portals-react-native-feature-image-1.png","_links":{"self":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/4305","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\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/comments?post=4305"}],"version-history":[{"count":1,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/4305\/revisions"}],"predecessor-version":[{"id":4308,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/4305\/revisions\/4308"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/media\/4306"}],"wp:attachment":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/media?parent=4305"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/categories?post=4305"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/tags?post=4305"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}