{"id":5681,"date":"2023-10-10T17:25:35","date_gmt":"2023-10-10T21:25:35","guid":{"rendered":"https:\/\/ionic.io\/blog\/?p=5681"},"modified":"2023-10-10T17:40:10","modified_gmt":"2023-10-10T21:40:10","slug":"capacitor-android-customscheme-issue-with-chrome-117","status":"publish","type":"post","link":"https:\/\/ionic.io\/blog\/capacitor-android-customscheme-issue-with-chrome-117","title":{"rendered":"Capacitor Android customScheme issue with Chrome 117"},"content":{"rendered":"\n<p>On September 27th, Google published <a href=\"https:\/\/chromium-review.googlesource.com\/c\/chromium\/src\/+\/4701743\">version 117<\/a> of the Android Webview to general availability. After this release, we were made aware that some Capacitor applications were reporting erroneous behavior, including hanging on application load. After investigating the changes in this release of the Webview, we identified that a change was made to the History API in this version that affects Capacitor applications using a custom scheme on Android. The result of this change is that custom schemes on Android can no longer change the URL path, which may prevent your application from routing correctly, making it appear to hang on load when routing fails.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Understanding the Impact<\/h2>\n\n\n\n<p>Out of the box, Capacitor 5 and earlier runs your Android application using the <code>http<\/code> scheme, while Capacitor 6 will use <a href=\"https:\/\/capacitorjs.com\/docs\/updating\/5-0#update-androidscheme\"><code>https<\/code><\/a>. Both of these schemes are still valid and are verified to continue to work with Webview 117. If you are using either of these schemes explicitly, or are relying on the default values provided by Capacitor, you should be unaffected by this change and no action is required for your application.<\/p>\n\n\n\n<p>If you are providing a custom value to <code>androidScheme<\/code> in your Capacitor Configuration file that is not <code>http<\/code> or <code>https<\/code>, it is likely that you may be impacted by this change. We would highly encourage you to test your application against Webview 117 to understand how this change will affect your application.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Updating Your Application<\/h2>\n\n\n\n<p>For anyone impacted by this change, we would <em><strong>strongly<\/strong><\/em> recommend that you change your <code>androidScheme<\/code> to use <code>https<\/code>. Please note that changing the scheme is the equivalent to shipping your application on a different domain, which means any data stored in cookies, localstorage, etc would no longer be accessible. Making this change will align your application with best practices recommended by both the Capacitor team as well as the Android team.<\/p>\n\n\n\n<p>If changing your scheme is not possible for your circumstances, the other alternative is to switch your application to use a hash-based routing strategy. While custom schemes are no longer allowed to change the URL path in Webview 117, they are still allowed to change query parameters or hash fragments. This approach can work as a temporary solution, however we do not recommend relying on this long-term.<\/p>\n\n\n\n<p>We understand that these changes may necessitate some adjustments to your application, but they are essential to ensure the continued reliability and performance of your applications.<\/p>\n\n\n\n<p>If you have any questions or require further assistance, please do not hesitate to reach out to our support team through the <a href=\"https:\/\/forum.ionicframework.com\/\">forum<\/a> or <a href=\"https:\/\/discord.com\/invite\/UPYYRhtyzp\">Discord<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>On September 27th, Google published version 117 of the Android Webview to general availability. After this release, we were made aware that some Capacitor applications were reporting erroneous behavior, including hanging on application load. After investigating the changes in this release of the Webview, we identified that a change was made to the History API [&hellip;]<\/p>\n","protected":false},"author":86,"featured_media":5682,"comment_status":"open","ping_status":"open","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,120],"tags":[125,151,276,3],"class_list":["post-5681","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-all","category-announcements","tag-android","tag-capacitor","tag-chrome","tag-ionic"],"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 Android customScheme issue with Chrome 117 - Ionic Blog<\/title>\n<meta name=\"description\" content=\"On September 27th, Google published version 117 of the Android Webview to general availability. After this release, we were made aware that some Capacitor applications were reporting erroneous behavior, including hanging on application load. After investigating the changes in this release of the Webview, we identified that a change was made to the History API in this version that affects Capacitor applications using a custom scheme on Android. The result of this change is that custom schemes on Android can no longer change the URL path, which may prevent your application from routing correctly, making it appear to hang on load when routing fails.\" \/>\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-android-customscheme-issue-with-chrome-117\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Capacitor Android customScheme issue with Chrome 117\" \/>\n<meta property=\"og:description\" content=\"On September 27th, Google published version 117 of the Android Webview to general availability. After this release, we were made aware that some Capacitor applications were reporting erroneous behavior, including hanging on application load. After investigating the changes in this release of the Webview, we identified that a change was made to the History API in this version that affects Capacitor applications using a custom scheme on Android. The result of this change is that custom schemes on Android can no longer change the URL path, which may prevent your application from routing correctly, making it appear to hang on load when routing fails.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ionic.io\/blog\/capacitor-android-customscheme-issue-with-chrome-117\" \/>\n<meta property=\"og:site_name\" content=\"Ionic Blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-10-10T21:25:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-10-10T21:40:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2023\/10\/capupdate-feature-image-1024x512.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Dallas James\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ionicframework\" \/>\n<meta name=\"twitter:site\" content=\"@ionicframework\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dallas James\" \/>\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\/capacitor-android-customscheme-issue-with-chrome-117#article\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/capacitor-android-customscheme-issue-with-chrome-117\"},\"author\":{\"name\":\"Dallas James\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/5f54036a400c733439d8ac782a6b332a\"},\"headline\":\"Capacitor Android customScheme issue with Chrome 117\",\"datePublished\":\"2023-10-10T21:25:35+00:00\",\"dateModified\":\"2023-10-10T21:40:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/ionic.io\/blog\/capacitor-android-customscheme-issue-with-chrome-117\"},\"wordCount\":417,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/ionic.io\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/capacitor-android-customscheme-issue-with-chrome-117#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2023\/10\/capupdate-feature-image.png\",\"keywords\":[\"Android\",\"Capacitor\",\"Chrome\",\"Ionic\"],\"articleSection\":[\"All\",\"Announcements\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/ionic.io\/blog\/capacitor-android-customscheme-issue-with-chrome-117#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/ionic.io\/blog\/capacitor-android-customscheme-issue-with-chrome-117\",\"url\":\"https:\/\/ionic.io\/blog\/capacitor-android-customscheme-issue-with-chrome-117\",\"name\":\"Capacitor Android customScheme issue with Chrome 117 - Ionic Blog\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/ionic.io\/blog\/capacitor-android-customscheme-issue-with-chrome-117#primaryimage\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/capacitor-android-customscheme-issue-with-chrome-117#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2023\/10\/capupdate-feature-image.png\",\"datePublished\":\"2023-10-10T21:25:35+00:00\",\"dateModified\":\"2023-10-10T21:40:10+00:00\",\"description\":\"On September 27th, Google published version 117 of the Android Webview to general availability. After this release, we were made aware that some Capacitor applications were reporting erroneous behavior, including hanging on application load. After investigating the changes in this release of the Webview, we identified that a change was made to the History API in this version that affects Capacitor applications using a custom scheme on Android. The result of this change is that custom schemes on Android can no longer change the URL path, which may prevent your application from routing correctly, making it appear to hang on load when routing fails.\",\"breadcrumb\":{\"@id\":\"https:\/\/ionic.io\/blog\/capacitor-android-customscheme-issue-with-chrome-117#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/ionic.io\/blog\/capacitor-android-customscheme-issue-with-chrome-117\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/capacitor-android-customscheme-issue-with-chrome-117#primaryimage\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2023\/10\/capupdate-feature-image.png\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2023\/10\/capupdate-feature-image.png\",\"width\":2240,\"height\":1120},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/ionic.io\/blog\/capacitor-android-customscheme-issue-with-chrome-117#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/ionic.io\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Capacitor Android customScheme issue with Chrome 117\"}]},{\"@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\/5f54036a400c733439d8ac782a6b332a\",\"name\":\"Dallas James\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/07\/dallas-james-150x150.jpg\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/07\/dallas-james-150x150.jpg\",\"caption\":\"Dallas James\"},\"url\":\"https:\/\/ionic.io\/blog\/author\/dallas\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Capacitor Android customScheme issue with Chrome 117 - Ionic Blog","description":"On September 27th, Google published version 117 of the Android Webview to general availability. After this release, we were made aware that some Capacitor applications were reporting erroneous behavior, including hanging on application load. After investigating the changes in this release of the Webview, we identified that a change was made to the History API in this version that affects Capacitor applications using a custom scheme on Android. The result of this change is that custom schemes on Android can no longer change the URL path, which may prevent your application from routing correctly, making it appear to hang on load when routing fails.","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-android-customscheme-issue-with-chrome-117","og_locale":"en_US","og_type":"article","og_title":"Capacitor Android customScheme issue with Chrome 117","og_description":"On September 27th, Google published version 117 of the Android Webview to general availability. After this release, we were made aware that some Capacitor applications were reporting erroneous behavior, including hanging on application load. After investigating the changes in this release of the Webview, we identified that a change was made to the History API in this version that affects Capacitor applications using a custom scheme on Android. The result of this change is that custom schemes on Android can no longer change the URL path, which may prevent your application from routing correctly, making it appear to hang on load when routing fails.","og_url":"https:\/\/ionic.io\/blog\/capacitor-android-customscheme-issue-with-chrome-117","og_site_name":"Ionic Blog","article_published_time":"2023-10-10T21:25:35+00:00","article_modified_time":"2023-10-10T21:40:10+00:00","og_image":[{"width":1024,"height":512,"url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2023\/10\/capupdate-feature-image-1024x512.png","type":"image\/png"}],"author":"Dallas James","twitter_card":"summary_large_image","twitter_creator":"@ionicframework","twitter_site":"@ionicframework","twitter_misc":{"Written by":"Dallas James","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ionic.io\/blog\/capacitor-android-customscheme-issue-with-chrome-117#article","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/capacitor-android-customscheme-issue-with-chrome-117"},"author":{"name":"Dallas James","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/5f54036a400c733439d8ac782a6b332a"},"headline":"Capacitor Android customScheme issue with Chrome 117","datePublished":"2023-10-10T21:25:35+00:00","dateModified":"2023-10-10T21:40:10+00:00","mainEntityOfPage":{"@id":"https:\/\/ionic.io\/blog\/capacitor-android-customscheme-issue-with-chrome-117"},"wordCount":417,"commentCount":0,"publisher":{"@id":"https:\/\/ionic.io\/blog\/#organization"},"image":{"@id":"https:\/\/ionic.io\/blog\/capacitor-android-customscheme-issue-with-chrome-117#primaryimage"},"thumbnailUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2023\/10\/capupdate-feature-image.png","keywords":["Android","Capacitor","Chrome","Ionic"],"articleSection":["All","Announcements"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ionic.io\/blog\/capacitor-android-customscheme-issue-with-chrome-117#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ionic.io\/blog\/capacitor-android-customscheme-issue-with-chrome-117","url":"https:\/\/ionic.io\/blog\/capacitor-android-customscheme-issue-with-chrome-117","name":"Capacitor Android customScheme issue with Chrome 117 - Ionic Blog","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ionic.io\/blog\/capacitor-android-customscheme-issue-with-chrome-117#primaryimage"},"image":{"@id":"https:\/\/ionic.io\/blog\/capacitor-android-customscheme-issue-with-chrome-117#primaryimage"},"thumbnailUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2023\/10\/capupdate-feature-image.png","datePublished":"2023-10-10T21:25:35+00:00","dateModified":"2023-10-10T21:40:10+00:00","description":"On September 27th, Google published version 117 of the Android Webview to general availability. After this release, we were made aware that some Capacitor applications were reporting erroneous behavior, including hanging on application load. After investigating the changes in this release of the Webview, we identified that a change was made to the History API in this version that affects Capacitor applications using a custom scheme on Android. The result of this change is that custom schemes on Android can no longer change the URL path, which may prevent your application from routing correctly, making it appear to hang on load when routing fails.","breadcrumb":{"@id":"https:\/\/ionic.io\/blog\/capacitor-android-customscheme-issue-with-chrome-117#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ionic.io\/blog\/capacitor-android-customscheme-issue-with-chrome-117"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/capacitor-android-customscheme-issue-with-chrome-117#primaryimage","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2023\/10\/capupdate-feature-image.png","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2023\/10\/capupdate-feature-image.png","width":2240,"height":1120},{"@type":"BreadcrumbList","@id":"https:\/\/ionic.io\/blog\/capacitor-android-customscheme-issue-with-chrome-117#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ionic.io\/blog"},{"@type":"ListItem","position":2,"name":"Capacitor Android customScheme issue with Chrome 117"}]},{"@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\/5f54036a400c733439d8ac782a6b332a","name":"Dallas James","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/07\/dallas-james-150x150.jpg","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2021\/07\/dallas-james-150x150.jpg","caption":"Dallas James"},"url":"https:\/\/ionic.io\/blog\/author\/dallas"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2023\/10\/capupdate-feature-image.png","_links":{"self":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/5681","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\/86"}],"replies":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/comments?post=5681"}],"version-history":[{"count":5,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/5681\/revisions"}],"predecessor-version":[{"id":5689,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/5681\/revisions\/5689"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/media\/5682"}],"wp:attachment":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/media?parent=5681"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/categories?post=5681"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/tags?post=5681"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}