{"id":453,"date":"2010-11-08T11:32:56","date_gmt":"2010-11-08T18:32:56","guid":{"rendered":"http:\/\/www.nayansavla.com\/blog\/?p=453"},"modified":"2011-02-03T19:40:30","modified_gmt":"2011-02-04T02:40:30","slug":"creating-bottom-navigation-bar-in-flex-mobile-applications","status":"publish","type":"post","link":"https:\/\/www.nayansavla.com\/blog\/?p=453","title":{"rendered":"Creating Bottom Navigation Bar in Flex Mobile Applications"},"content":{"rendered":"<p>When Flex 4.5 &#8220;Hero&#8221; was announced at MAX i jumped on the chance to play with it. For those who want to get a good basic understanding of how it is different from traditional Flex Application development i would highly recommend this MAX session titled &#8220;<a href=\"http:\/\/tv.adobe.com\/watch\/max-2010-develop\/deep-dive-into-mobile-development-with-the-flex-sdk-\/\" target=\"_blank\">Deep Dive into Mobile Development using Flex SDK<\/a>&#8220;.<br \/>\n<br \/>\nSo first thing when i started playing around was that i realized there was no easy way to have a bottom navigation menu like most of the apps. for eg. If you look at the apple app store in the bottom you see \u00a0the top navigation menu, middle content area and then the bottom bar. The image below explains what i mean by it.<br \/>\n<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" title=\"Explain\" src=\"http:\/\/nayansavla.com\/uploads\/flash\/mobilebottom\/explanation.jpg\" alt=\"\" width=\"600\" height=\"500\" \/><br \/>\n<br \/>\nTo get this functionality where you have a constant bottom bar and then the views change when you select the buttons, you have to do little bit of coding and here is how you do it.<br \/>\n<br \/>\nThe project file can be downloaded <a href=\"http:\/\/nayansavla.com\/uploads\/flash\/mobilebottom\/bottombar.fxp\">here<\/a>.<br \/>\n<br \/>\nThis is the main file and we don&#8217;t have to make any changes to it, this is what you will get when you create a mobile application.<br \/>\n<\/p>\n<div class=\"codecolorer-container actionscript default\" style=\"overflow:auto;white-space:nowrap;width:435px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/><\/div><\/td><td><div class=\"actionscript codecolorer\"><span class=\"sy0\">&lt;<\/span> ?<span class=\"kw3\">xml<\/span> <span class=\"kw3\">version<\/span>=<span class=\"st0\">&quot;1.0&quot;<\/span> encoding=<span class=\"st0\">&quot;utf-8&quot;<\/span>?<span class=\"sy0\">&gt;<\/span><br \/>\n<span class=\"sy0\">&lt;<\/span>s :MobileApplication xmlns:fx=<span class=\"st0\">&quot;http:\/\/ns.adobe.com\/mxml\/2009&quot;<\/span> <br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xmlns:s=<span class=\"st0\">&quot;library:\/\/ns.adobe.com\/flex\/spark&quot;<\/span> firstView=<span class=\"st0\">&quot;views.bottombarHome&quot;<\/span><span class=\"sy0\">&gt;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"sy0\">&lt;<\/span>fx :Declarations<span class=\"sy0\">&gt;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">&lt;!<\/span>-- Place non-visual elements <span class=\"br0\">&#40;<\/span><span class=\"kw3\">e<\/span>.<span class=\"me1\">g<\/span>., services, value objects<span class=\"br0\">&#41;<\/span> here --<span class=\"sy0\">&gt;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"sy0\">&lt;\/<\/span>fx<span class=\"sy0\">&gt;<\/span><br \/>\n&nbsp; &nbsp; <br \/>\n&nbsp; &nbsp; <span class=\"sy0\">&lt;<\/span>fx :Style source=<span class=\"st0\">&quot;style.css&quot;<\/span> <span class=\"sy0\">\/&gt;<\/span><br \/>\n<span class=\"sy0\">&lt;\/<\/span>s<span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>so now lets look at the first view file called bottombarHome, this is where all the action happens.<\/p>\n<div class=\"codecolorer-container actionscript default\" style=\"overflow:auto;white-space:nowrap;width:435px;height:300px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/>64<br \/>65<br \/><\/div><\/td><td><div class=\"actionscript codecolorer\"><span class=\"sy0\">&lt;<\/span> ?<span class=\"kw3\">xml<\/span> <span class=\"kw3\">version<\/span>=<span class=\"st0\">&quot;1.0&quot;<\/span> encoding=<span class=\"st0\">&quot;utf-8&quot;<\/span>?<span class=\"sy0\">&gt;<\/span><br \/>\n<span class=\"sy0\">&lt;<\/span>s :View xmlns:fx=<span class=\"st0\">&quot;http:\/\/ns.adobe.com\/mxml\/2009&quot;<\/span> creationComplete=<span class=\"st0\">&quot;view1_creationCompleteHandler(event)&quot;<\/span> <br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; xmlns:s=<span class=\"st0\">&quot;library:\/\/ns.adobe.com\/flex\/spark&quot;<\/span> actionBarVisible=<span class=\"st0\">&quot;false&quot;<\/span><span class=\"sy0\">&gt;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"sy0\">&lt;\/<\/span>s<span class=\"sy0\">&gt;&lt;<\/span>s :layout<span class=\"sy0\">&gt;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">&lt;<\/span>s :BasicLayout<span class=\"sy0\">\/&gt;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"sy0\">&lt;\/<\/span>s<span class=\"sy0\">&gt;<\/span><br \/>\n&nbsp; &nbsp; <br \/>\n&nbsp; &nbsp; <span class=\"sy0\">&lt;<\/span>fx :Script<span class=\"sy0\">&gt;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">&lt;<\/span> <span class=\"sy0\">!<\/span><span class=\"br0\">&#91;<\/span>CDATA<span class=\"br0\">&#91;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw3\">import<\/span> mx.<span class=\"me1\">events<\/span>.<span class=\"me1\">FlexEvent<\/span>;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw3\">import<\/span> views.<span class=\"sy0\">*<\/span>;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; protected <span class=\"kw2\">function<\/span> one_clickHandler<span class=\"br0\">&#40;<\/span>event:MouseEvent<span class=\"br0\">&#41;<\/span>:<span class=\"kw3\">void<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ TODO Auto-generated method stub<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"sy0\">!<\/span><span class=\"br0\">&#40;<\/span>myNavigator.<span class=\"me1\">activeView<\/span> is One<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; myNavigator.<span class=\"me1\">pushView<\/span><span class=\"br0\">&#40;<\/span>One<span class=\"br0\">&#41;<\/span>;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; protected <span class=\"kw2\">function<\/span> two_clickHandler<span class=\"br0\">&#40;<\/span>event:MouseEvent<span class=\"br0\">&#41;<\/span>:<span class=\"kw3\">void<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ TODO Auto-generated method stub<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"sy0\">!<\/span><span class=\"br0\">&#40;<\/span>myNavigator.<span class=\"me1\">activeView<\/span> is Two<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; myNavigator.<span class=\"me1\">pushView<\/span><span class=\"br0\">&#40;<\/span>Two<span class=\"br0\">&#41;<\/span>;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; protected <span class=\"kw2\">function<\/span> three_clickHandler<span class=\"br0\">&#40;<\/span>event:MouseEvent<span class=\"br0\">&#41;<\/span>:<span class=\"kw3\">void<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ TODO Auto-generated method stub<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"sy0\">!<\/span><span class=\"br0\">&#40;<\/span>myNavigator.<span class=\"me1\">activeView<\/span> is Three<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; myNavigator.<span class=\"me1\">pushView<\/span><span class=\"br0\">&#40;<\/span>Three<span class=\"br0\">&#41;<\/span>;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; protected <span class=\"kw2\">function<\/span> view1_creationCompleteHandler<span class=\"br0\">&#40;<\/span>event:FlexEvent<span class=\"br0\">&#41;<\/span>:<span class=\"kw3\">void<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ TODO Auto-generated method stub<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; systemManager.<span class=\"kw3\">stage<\/span>.<span class=\"me1\">addEventListener<\/span><span class=\"br0\">&#40;<\/span>KeyboardEvent.<span class=\"me1\">KEY_UP<\/span>, deviceKeyUpHandler<span class=\"br0\">&#41;<\/span>;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/add the first view when this view is created<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; myNavigator.<span class=\"me1\">pushView<\/span><span class=\"br0\">&#40;<\/span>One<span class=\"br0\">&#41;<\/span>;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/this is required to handle the device back key<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; protected <span class=\"kw2\">function<\/span> deviceKeyUpHandler<span class=\"br0\">&#40;<\/span>event:KeyboardEvent<span class=\"br0\">&#41;<\/span>:<span class=\"kw3\">void<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ TODO Auto-generated method stub<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw2\">var<\/span> <span class=\"kw3\">key<\/span>:uint = event.<span class=\"me1\">keyCode<\/span>;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"kw3\">key<\/span> == Keyboard.<span class=\"me1\">BACK<\/span> <span class=\"sy0\">&amp;&amp;<\/span> myNavigator.<span class=\"me1\">navigationStack<\/span>.<span class=\"kw3\">length<\/span> <span class=\"sy0\">&gt;<\/span> <span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; myNavigator.<span class=\"me1\">popView<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span>;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#93;<\/span><span class=\"br0\">&#93;<\/span><span class=\"sy0\">&gt;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"sy0\">&lt;\/<\/span>fx<span class=\"sy0\">&gt;<\/span><br \/>\n&nbsp; &nbsp; <br \/>\n&nbsp; &nbsp; <span class=\"sy0\">&lt;<\/span>fx :Declarations<span class=\"sy0\">&gt;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">&lt;!<\/span>-- Place non-visual elements <span class=\"br0\">&#40;<\/span><span class=\"kw3\">e<\/span>.<span class=\"me1\">g<\/span>., services, value objects<span class=\"br0\">&#41;<\/span> here --<span class=\"sy0\">&gt;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"sy0\">&lt;\/<\/span>fx<span class=\"sy0\">&gt;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; <span class=\"sy0\">&lt;<\/span>s :VGroup <span class=\"kw3\">height<\/span>=<span class=\"st0\">&quot;100%&quot;<\/span> <span class=\"kw3\">width<\/span>=<span class=\"st0\">&quot;100%&quot;<\/span> gap=<span class=\"st0\">&quot;0&quot;<\/span><span class=\"sy0\">&gt;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">&lt;<\/span>s :ViewNavigator id=<span class=\"st0\">&quot;myNavigator&quot;<\/span> <span class=\"kw3\">width<\/span>=<span class=\"st0\">&quot;100%&quot;<\/span> <span class=\"kw3\">height<\/span>=<span class=\"st0\">&quot;100%&quot;<\/span> <span class=\"sy0\">\/&gt;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">&lt;\/<\/span>s<span class=\"sy0\">&gt;&lt;<\/span>s :HGroup <span class=\"kw3\">left<\/span>=<span class=\"st0\">&quot;0&quot;<\/span> <span class=\"kw3\">right<\/span>=<span class=\"st0\">&quot;0&quot;<\/span> bottom=<span class=\"st0\">&quot;0&quot;<\/span> gap=<span class=\"st0\">&quot;0&quot;<\/span> <span class=\"kw3\">width<\/span>=<span class=\"st0\">&quot;100%&quot;<\/span> <span class=\"sy0\">&gt;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">&lt;<\/span>s :<span class=\"kw3\">Button<\/span> label=<span class=\"st0\">&quot;One&quot;<\/span> id=<span class=\"st0\">&quot;one&quot;<\/span> click=<span class=\"st0\">&quot;one_clickHandler(event)&quot;<\/span> <span class=\"sy0\">\/&gt;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">&lt;<\/span>s :<span class=\"kw3\">Button<\/span> label=<span class=\"st0\">&quot;Two&quot;<\/span> id=<span class=\"st0\">&quot;two&quot;<\/span> click=<span class=\"st0\">&quot;two_clickHandler(event)&quot;<\/span> <span class=\"sy0\">\/&gt;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">&lt;<\/span>s :<span class=\"kw3\">Button<\/span> label=<span class=\"st0\">&quot;Three&quot;<\/span> id=<span class=\"st0\">&quot;three&quot;<\/span> click=<span class=\"st0\">&quot;three_clickHandler(event)&quot;<\/span> <span class=\"sy0\">\/&gt;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">&lt;\/<\/span>s<span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\nok i have to admit, putting code like this doesn&#8217;t make any sense but you will have to trust me that when you run this application you will have a bottom navigation bar which stays in place all the time during lifetime of your application.<br \/>\n<br \/>\nThere might be other ways to do it and i would like to know but so far i have found this way to be effective.<br \/>\n<br \/>\nIt would be cool if inside the MobileApplication.as there would be this functionality to add a bottombar and then every view for that button has a &#8220;master&#8221; viewstack instead of one single viewstack as it is the case right now.<br \/>\n<br \/>\nThere is one more way of achieving this you can read about it <a href=\"http:\/\/www.nayansavla.com\/blog\/?p=497\" target=\"_blank\">here<\/a>.<br \/>\n<br \/>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When Flex 4.5 &#8220;Hero&#8221; was announced at MAX i jumped on the chance to play with it. For those who want to get a good basic understanding of how it is different from traditional Flex Application development i would highly recommend this MAX session titled &#8220;Deep Dive into Mobile Development using Flex SDK&#8220;. So first [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,64],"tags":[],"class_list":["post-453","post","type-post","status-publish","format-standard","hentry","category-flex","category-mobile"],"_links":{"self":[{"href":"https:\/\/www.nayansavla.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/453","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.nayansavla.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nayansavla.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nayansavla.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nayansavla.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=453"}],"version-history":[{"count":0,"href":"https:\/\/www.nayansavla.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/453\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.nayansavla.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=453"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nayansavla.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=453"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nayansavla.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=453"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}