{"id":273,"date":"2015-01-12T02:00:00","date_gmt":"2015-01-12T02:00:00","guid":{"rendered":"http:\/\/localhost\/?p=273"},"modified":"2017-01-10T16:49:44","modified_gmt":"2017-01-10T16:49:44","slug":"crosswalk-comes-to-ionic","status":"publish","type":"post","link":"https:\/\/ionic.io\/blog\/crosswalk-comes-to-ionic","title":{"rendered":"Crosswalk comes to Ionic"},"content":{"rendered":"<p><em>Updated as of 4\/13\/2015<\/em><\/p>\n<h3 id=\"ionicandcrosswalk\">Ionic and Crosswalk<\/h3>\n<p>With our latest CLI update, we\u2019re excited to introduce the ability to package modern rendering engines within your app for Cordova, starting with <a href=\"https:\/\/crosswalk-project.org\/\">Crosswalk for Android<\/a>. Crosswalk provides Android developers a bundled Chrome webview for their projects, resulting in better performance and predictability!<\/p>\n<p>Our team is passionate about making hybrid mobile development awesome, and we\u2019re so grateful to our committed, enthusiastic community for helping us succeed in our mission.<\/p>\n<p><!--more--><\/p>\n<h3 id=\"gettingstartedwithcrosswalk\">Getting Started With Crosswalk<\/h3>\n<p>First, make sure you get the latest Ionic CLI, and then you can easily create an app, add the Android platform, and add Crosswalk to the project.<\/p>\n<h4 id=\"newproject\">New Project<\/h4>\n<pre>\n<code class=\"bash\">\nnpm install ionic -g\nionic start my_app\ncd my_app\nionic browser add crosswalk\nionic run android\n<\/code>\n<\/pre>\n<h4 id=\"previousionicproject\">Previous Ionic Project<\/h4>\n<pre>\n<code class=\"bash\">\nnpm install ionic -g\ncd existing_app\nionic browser add crosswalk\nionic run android\n<\/code><\/pre>\n<h4 id=\"specifyingaversionofcrosswalk\">Specifying a version of Crosswalk<\/h4>\n<p><code>ionic browser list<\/code> #Find the version of Crosswalk you want.<br \/>\n<code>ionic browser add crosswalk@10.39.235.15<\/code>  #Install stable version 10.39.235.15.<\/p>\n<h4 id=\"buildingforseparatearchitectures\">Building for separate architectures<\/h4>\n<p>Update: Previously, you needed an environment variable to build multiple architectures. Due to some changes to the underlying Cordova Android library, you no longer need to specify the environment variable to build multiple APKs. This should happen by default by running <code>ionic build android<\/code>.<\/p>\n<p>If you have a device connected and run <code>ionic run android<\/code>, it will auto detect that architecture type and only build and run for that device.<\/p>\n<h4 id=\"volatility\">Volatility<\/h4>\n<p><em>Please note that running these steps will alter your Android project, so you\u2019ll want to use version control to handle changes from Crosswalk.<\/em><\/p>\n<p>These commands should set you up with a custom Android build with Crosswalk. You can run the project as you normally would.<\/p>\n<p>To confirm that it was, in fact installed, open <a href=\"chrome:\/\/inspect\/#devices\">Chrome DevTools<\/a> and confirm that it says &#8220;Chrome 37&#8221; or greater.<\/p>\n<p>We&#8217;d love to ask you to help out the cause by testing and giving feedback. This is your chance to help several open source projects at once: Cordova, Crosswalk, and Ionic!<\/p>\n<h4 id=\"10questionsyoumayask\"><strong>10 Questions You Might Have:<\/strong><\/h4>\n<p>We\u2019ve put together this Q &amp; A to answer questions you might have about Crosswalk. Please don&#8217;t hesitate to contact us if you have questions that aren&#8217;t answered here!<\/p>\n<ol>\n<li><strong>What is Crosswalk?<\/strong>\n<ul>\n<li>Crosswalk is an open source project that allows you to specify a version of Chrome to use as your web browser in Android. The compiled app will have your code hosted inside of this Chrome webview.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Why should I use Crosswalk?<\/strong>\n<ul>\n<li>Older versions of Android devices (4.0-4.3) use Android\u2019s default browser, which has significantly less performance and standards compliance than modern Chrome. Using Crosswalk gives you a specific and more performant version of Chrome to use on all Android devices, in order to reduce fluctuations and fragmentation among devices.<\/li>\n<\/ul>\n<\/li>\n<li><strong>How does Crosswalk improve Cordova Android apps?<\/strong>\n<ul>\n<li>By designating a specific version of Chrome, you can skip the unexpected behavior from browsers that vary from device to device. Crosswalk also provides improved performance and ease of debugging.<\/li>\n<\/ul>\n<\/li>\n<li><strong>What can I expect, performance and size-wise?<\/strong>\n<ul>\n<li>In older Android Devices (4.0-4.3), you\u2019ll see about a 10x improvement of both HTML\/CSS rendering and JavaScript performance and CSS correctness. To bundle Chrome, you will see a small (~10-15MB) size increase in your Android Apps.<\/li>\n<\/ul>\n<\/li>\n<li><strong>How do I try it out?<\/strong>\n<ul>\n<li><code>npm install -g ionic<\/code><\/li>\n<\/ul>\n<\/li>\n<li><strong>How do I report errors?<\/strong>\n<ul>\n<li>If you encounter any errors, please type <code>ionic info<\/code> and paste that information to our <a href=\"https:\/\/github.com\/driftyco\/ionic-cli\/issues\">Ionic CLI issues on github<\/a><\/li>\n<\/ul>\n<\/li>\n<li><strong>What should I look for when testing?<\/strong>\n<ul>\n<li>Improved performance on older Android devices, with the ability to debug using Chrome DevTools.<\/li>\n<li>Testing any of the core Cordova plugins, such as Camera, GPS, etc.<\/li>\n<li>Report weird behavior while building or running the app.<\/li>\n<li>Report differences between using Crosswalk and not; for example, your splash screen no longer shows.<\/li>\n<\/ul>\n<\/li>\n<li><strong>How do I debug with Crosswalk \/ Chrome?<\/strong>\n<ul>\n<li>Fire up Chrome DevTools and go to <a href=\"chrome:\/\/inspect\/#devices\">Chrome Inspect Devices<\/a>.<\/li>\n<\/ul>\n<\/li>\n<li><strong>What are the architectures for Android devices, and why do they exist?<\/strong>\n<ul>\n<li>There are two main Architectures for Android &#8211; x86 and ARM. The reason for the two is that the device providers choose to use a separate processor. With different processors, we\u2019ll need to compile them separately. Using Crosswalk, you may specify that you want two separate builds for x86 \/ Arm to keep your build size down. If you make a single build, you will have to bundle both versions of Crosswalk (x86\/Arm) and have a larger build size (~50-60 MB).<\/li>\n<\/ul>\n<\/li>\n<li><strong>Why the switch to Gradle for Android?<\/strong>\n<ul>\n<li>The Cordova Android team has decided to move away from Ant towards more of a Gradle-based build scenario. In this upgrade, you may see alternative build messages from Gradle, instead of your normal Ant messages.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3 id=\"cliroadmaptentative\">CLI Roadmap (tentative)<\/h3>\n<p>It\u2019s really important to us that we keep our users informed about what we&#8217;re working on. Here\u2019s a roadmap that covers where we\u2019ve been and where we\u2019re going. Thanks for joining us on the journey!<\/p>\n<h4 id=\"13milestones1720141122015\">1.3 Milestones (1\/7\/2014 &#8211; 1\/12\/2015)<\/h4>\n<ul>\n<li>Crosswalk Browser introduction &amp; installation.<\/li>\n<li>Info command for environment-specific info.<\/li>\n<li>Error reporting from CLI &#8211; helps us respond to errors faster and be proactive about errors.<\/li>\n<li>Individual help commands &#8211; now the CLI gives more info about the individual commands <code>ionic help serve<\/code>.<\/li>\n<\/ul>\n<h4 id=\"131milestones11220151142015\">1.3.1 Milestones (1\/12\/2015 -1\/14\/2015)<\/h4>\n<ul>\n<li>Specify a <a href=\"https:\/\/download.01.org\/crosswalk\/releases\/crosswalk\/android\/stable\/\">version of Crosswalk<\/a> to use &#8211; <code>ionic browser add crosswalk@10.39.235.15<\/code>.<\/li>\n<li>See all the browsers available to install &#8211; <code>ionic browser list<\/code>. <em>NOTE: Only stable releases are allowed for now.<\/em><\/li>\n<li>Fixed a bug related to <code>ionic upload<\/code>.<\/li>\n<li>Caching the Crosswalk downloads &#8211; once you\u2019ve installed a version in a project, running <code>ionic browser add crosswalk<\/code> will not re-download the webviews.<\/li>\n<\/ul>\n<h4 id=\"132milestones11420151232015\">1.3.2 Milestones (1\/14\/2015 &#8211; 1\/23\/2015)<\/h4>\n<ul>\n<li>Quick fix for the <code>ionic upload<\/code> command &#8211; fixed an issue with the cookies from the request.<\/li>\n<\/ul>\n<h4 id=\"133milestones1232015onward\">1.3.3 Milestones (1\/23\/2015 &#8211; onward)<\/h4>\n<ul>\n<li>Add a release option that removes unused files and minifies\/uglifies to give you smaller builds.<\/li>\n<li>Add the ability to specify Beta\/Canary builds of Crosswalk.<\/li>\n<li>Provide a way to release Android builds post 4.4 without Crosswalk.<\/li>\n<li>Make using the CLI easier with tab complete.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/github.com\/driftyco\/ionic-cli#crosswalk-for-android\">Crosswalk Docs<\/a><\/p>\n<h2><strong>Crosswalk Updates as of 4\/13\/2015<\/strong><\/h2>\n<p>In the last month, the Ionic CLI has updated the version of Cordova Android that it uses to the latest commits. Some of these changes have caused some issues for users.<\/p>\n<h3>Issues running ionic platform add<\/h3>\n<p>Users that run <code>ionic platform add android<\/code> after running <code>ionic browser add crosswalk<\/code> may run into the following issue:<\/p>\n<pre><code>Plugin doesn&#039;t support this project&#039;s cordova-android version. cordova-android: 3.7.1, failed version requirement: &gt;=4.0.0-dev\n<\/code><\/pre>\n<p>When you run <code>ionic browser add crosswalk<\/code>, the CLI downloads Cordova Android 4.0.0-dev, along with a Cordova Crosswalk Engine plugin. The Crosswalk plugin requires Cordova Android 4.0.0 and will not work properly without it.<\/p>\n<p>When you run <code>ionic platform add android<\/code>, you are then removing Cordova Android 4.0.0 and trying to install Cordova Android 3.7.1 (if you are using the latest Cordova CLI).<\/p>\n<p>Right away, this will fail, due to the Crosswalk engine plugin. If you wish to stop using the Crosswalk plugin, please run <code>ionic browser remove crosswalk<\/code>.<\/p>\n<p>If this was unintentional, simply run <code>ionic browser add crosswalk<\/code> again to allow the CLI to install that Cordova Android 4.0.0 version. Otherwise, you can run <code>ionic platform add .\/engine\/cordova-android-c0.6.1<\/code> to freshly install the downloaded 4.0.0 version of Cordova Android.<\/p>\n<p>You may also remove the Crosswalk Engine plugin. Find the name <code>ionic plugin ls<\/code> and then <code>ionic plugin rm cordova-plugin-crosswalk-webview<\/code>.<\/p>\n<h3>Issues with Crosswalk not loading external resources<\/h3>\n<p>Using the latest changes from Cordova Android 4.0.0, the Cordova team has removed the Whitelisting capabilities of Cordova to now reside in a <a href=\"https:\/\/github.com\/apache\/cordova-plugin-whitelist\">whitelist plugin<\/a>.<\/p>\n<p>This plugin has not been released yet but is required to allow whitelisting to work properly with Cordova android 4.0.<\/p>\n<p>To get around this issue, please install the plugin using this command: <code>ionic plugin add https:\/\/github.com\/apache\/cordova-plugin-whitelist<\/code>.<\/p>\n<p>That should temporarily get you around that issue until the Cordova team releases that plugin to the Cordova Plugin registry.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Updated as of 4\/13\/2015 Ionic and Crosswalk With our latest CLI update, we\u2019re excited to introduce the ability to package modern rendering engines within your app for Cordova, starting with Crosswalk for Android. Crosswalk provides Android developers a bundled Chrome webview for their projects, resulting in better performance and predictability! Our team is passionate about [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":1653,"comment_status":"closed","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":[1],"tags":[3,7,4],"class_list":["post-273","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-all","tag-ionic","tag-tools","tag-top-posts"],"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>Crosswalk comes to Ionic - 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\/crosswalk-comes-to-ionic\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Crosswalk comes to Ionic\" \/>\n<meta property=\"og:description\" content=\"Updated as of 4\/13\/2015 Ionic and Crosswalk With our latest CLI update, we\u2019re excited to introduce the ability to package modern rendering engines within your app for Cordova, starting with Crosswalk for Android. Crosswalk provides Android developers a bundled Chrome webview for their projects, resulting in better performance and predictability! Our team is passionate about [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ionic.io\/blog\/crosswalk-comes-to-ionic\" \/>\n<meta property=\"og:site_name\" content=\"Ionic Blog\" \/>\n<meta property=\"article:published_time\" content=\"2015-01-12T02:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-01-10T16:49:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2015\/01\/crosswalk-header.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1400\" \/>\n\t<meta property=\"og:image:height\" content=\"680\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Josh Bavari\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@jbavari\" \/>\n<meta name=\"twitter:site\" content=\"@ionicframework\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Josh Bavari\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/ionic.io\/blog\/crosswalk-comes-to-ionic#article\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/crosswalk-comes-to-ionic\"},\"author\":{\"name\":\"Josh Bavari\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/85c9efe852106ad765c852ffd67515ef\"},\"headline\":\"Crosswalk comes to Ionic\",\"datePublished\":\"2015-01-12T02:00:00+00:00\",\"dateModified\":\"2017-01-10T16:49:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/ionic.io\/blog\/crosswalk-comes-to-ionic\"},\"wordCount\":1201,\"publisher\":{\"@id\":\"https:\/\/ionic.io\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/crosswalk-comes-to-ionic#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2015\/01\/crosswalk-header.jpg\",\"keywords\":[\"Ionic\",\"Tools\",\"Top Posts\"],\"articleSection\":[\"All\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/ionic.io\/blog\/crosswalk-comes-to-ionic\",\"url\":\"https:\/\/ionic.io\/blog\/crosswalk-comes-to-ionic\",\"name\":\"Crosswalk comes to Ionic - Ionic Blog\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/ionic.io\/blog\/crosswalk-comes-to-ionic#primaryimage\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/crosswalk-comes-to-ionic#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2015\/01\/crosswalk-header.jpg\",\"datePublished\":\"2015-01-12T02:00:00+00:00\",\"dateModified\":\"2017-01-10T16:49:44+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/ionic.io\/blog\/crosswalk-comes-to-ionic#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/ionic.io\/blog\/crosswalk-comes-to-ionic\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/crosswalk-comes-to-ionic#primaryimage\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2015\/01\/crosswalk-header.jpg\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2015\/01\/crosswalk-header.jpg\",\"width\":1400,\"height\":680},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/ionic.io\/blog\/crosswalk-comes-to-ionic#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/ionic.io\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Crosswalk comes to Ionic\"}]},{\"@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\/85c9efe852106ad765c852ffd67515ef\",\"name\":\"Josh Bavari\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2015\/05\/josh-headshot-14-150x150.jpg\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2015\/05\/josh-headshot-14-150x150.jpg\",\"caption\":\"Josh Bavari\"},\"sameAs\":[\"https:\/\/x.com\/jbavari\"],\"url\":\"https:\/\/ionic.io\/blog\/author\/jbavari\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Crosswalk comes to Ionic - 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\/crosswalk-comes-to-ionic","og_locale":"en_US","og_type":"article","og_title":"Crosswalk comes to Ionic","og_description":"Updated as of 4\/13\/2015 Ionic and Crosswalk With our latest CLI update, we\u2019re excited to introduce the ability to package modern rendering engines within your app for Cordova, starting with Crosswalk for Android. Crosswalk provides Android developers a bundled Chrome webview for their projects, resulting in better performance and predictability! Our team is passionate about [&hellip;]","og_url":"https:\/\/ionic.io\/blog\/crosswalk-comes-to-ionic","og_site_name":"Ionic Blog","article_published_time":"2015-01-12T02:00:00+00:00","article_modified_time":"2017-01-10T16:49:44+00:00","og_image":[{"width":1400,"height":680,"url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2015\/01\/crosswalk-header.jpg","type":"image\/jpeg"}],"author":"Josh Bavari","twitter_card":"summary_large_image","twitter_creator":"@jbavari","twitter_site":"@ionicframework","twitter_misc":{"Written by":"Josh Bavari","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ionic.io\/blog\/crosswalk-comes-to-ionic#article","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/crosswalk-comes-to-ionic"},"author":{"name":"Josh Bavari","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/85c9efe852106ad765c852ffd67515ef"},"headline":"Crosswalk comes to Ionic","datePublished":"2015-01-12T02:00:00+00:00","dateModified":"2017-01-10T16:49:44+00:00","mainEntityOfPage":{"@id":"https:\/\/ionic.io\/blog\/crosswalk-comes-to-ionic"},"wordCount":1201,"publisher":{"@id":"https:\/\/ionic.io\/blog\/#organization"},"image":{"@id":"https:\/\/ionic.io\/blog\/crosswalk-comes-to-ionic#primaryimage"},"thumbnailUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2015\/01\/crosswalk-header.jpg","keywords":["Ionic","Tools","Top Posts"],"articleSection":["All"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/ionic.io\/blog\/crosswalk-comes-to-ionic","url":"https:\/\/ionic.io\/blog\/crosswalk-comes-to-ionic","name":"Crosswalk comes to Ionic - Ionic Blog","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ionic.io\/blog\/crosswalk-comes-to-ionic#primaryimage"},"image":{"@id":"https:\/\/ionic.io\/blog\/crosswalk-comes-to-ionic#primaryimage"},"thumbnailUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2015\/01\/crosswalk-header.jpg","datePublished":"2015-01-12T02:00:00+00:00","dateModified":"2017-01-10T16:49:44+00:00","breadcrumb":{"@id":"https:\/\/ionic.io\/blog\/crosswalk-comes-to-ionic#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ionic.io\/blog\/crosswalk-comes-to-ionic"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/crosswalk-comes-to-ionic#primaryimage","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2015\/01\/crosswalk-header.jpg","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2015\/01\/crosswalk-header.jpg","width":1400,"height":680},{"@type":"BreadcrumbList","@id":"https:\/\/ionic.io\/blog\/crosswalk-comes-to-ionic#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ionic.io\/blog"},{"@type":"ListItem","position":2,"name":"Crosswalk comes to Ionic"}]},{"@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\/85c9efe852106ad765c852ffd67515ef","name":"Josh Bavari","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2015\/05\/josh-headshot-14-150x150.jpg","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2015\/05\/josh-headshot-14-150x150.jpg","caption":"Josh Bavari"},"sameAs":["https:\/\/x.com\/jbavari"],"url":"https:\/\/ionic.io\/blog\/author\/jbavari"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2015\/01\/crosswalk-header.jpg","_links":{"self":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/273","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\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/comments?post=273"}],"version-history":[{"count":0,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/273\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/media\/1653"}],"wp:attachment":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/media?parent=273"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/categories?post=273"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/tags?post=273"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}