{"id":865,"date":"2017-05-25T14:45:19","date_gmt":"2017-05-25T12:45:19","guid":{"rendered":"https:\/\/zaven.co\/blog\/?p=865"},"modified":"2025-04-08T19:55:09","modified_gmt":"2025-04-08T17:55:09","slug":"3d-touch-quick-actions-tutorial","status":"publish","type":"post","link":"https:\/\/zaven.co\/blog\/3d-touch-quick-actions-tutorial\/","title":{"rendered":"3D Touch Quick Actions Tutorial"},"content":{"rendered":"<p>Did you know that the iPhone is able to detect different levels of touch depending on how hard you press? This is all thanks to <em>3D Touch<\/em>! <strong>Check out how to add 3D Touch quick actions to your iOS apps.<\/strong><!--more--><\/p>\n<p>Together with iPhone 6s, <strong>Apple introduced 3D Touch<\/strong>. This feature is able to detect different levels of touch, depends on how hard you press. It is basically a third dimension in the user interface.<\/p>\n<h2>3D Touch &#8211; How it Works<\/h2>\n<p>With this feature, the user gets access to an app\u2019s quick actions by pressing hard on the home screen icon of the iOS application. <em>By hard pressing a view inside an app, the user can see a preview for additional content and features.<\/em><\/p>\n<div id=\"attachment_889\" style=\"width: 740px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-889\" class=\"wp-image-889 size-medium\" src=\"https:\/\/zaven.co\/blog\/wp-content\/uploads\/2017\/05\/obraz1-3-730x636.png\" alt=\"3D Touch - how it works\"   srcset=\"https:\/\/zaven.co\/blog\/wp-content\/uploads\/2017\/05\/obraz1-3-730x636.png 730w, https:\/\/zaven.co\/blog\/wp-content\/uploads\/2017\/05\/obraz1-3.png 1530w\" sizes=\"auto, (max-width: 730px) 100vw, 730px\" \/><p id=\"caption-attachment-889\" class=\"wp-caption-text\"><em>3D Touch &#8211; how it works<\/em><\/p><\/div>\n<h2>Getting Started with 3D Touch quick actions<\/h2>\n<p>First of all, <strong>to implement 3D Touch quick actions in your iOS app<\/strong>, you have to define <code>UIApplicationShortcutItems<\/code> array in your app\u2019s <code>Info.plist<\/code> file. It should look&nbsp;like this:<\/p>\n<p><a href=\"https:\/\/zaven.co\/blog\/wp-content\/uploads\/2017\/05\/tabela.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-867 size-full\" src=\"https:\/\/zaven.co\/blog\/wp-content\/uploads\/2017\/05\/tabela.png\" alt=\"3D Touch quick actions in your iOS app\"  ><\/a><\/p>\n<p>You should define one static quick action with the following parameters:<\/p>\n<ul>\n<li><strong>UIApplicationShortcutItemTitle<\/strong> (required) is a string describing the quick action.<\/li>\n<\/ul>\n<ul>\n<li><strong>UIApplicationShortcutItemSubtitle<\/strong> is optional text displayed below (remember it is a single line). If you haven\u2019t added a subtitle your title will be able to be shown on two lines.<\/li>\n<\/ul>\n<ul>\n<li><strong>UIApplicationShortcutItemIconType<\/strong> is an optional string that represents your icon in the Assets file.<\/li>\n<\/ul>\n<ul>\n<li><strong>UIApplicationShortcutItemType<\/strong> (required) is a required string that identifies the quick action.<\/li>\n<\/ul>\n<p>You can find a list of all available shortcut items with full descriptions <a href=\"https:\/\/developer.apple.com\/library\/content\/documentation\/General\/Reference\/InfoPlistKeyReference\/Articles\/iPhoneOSKeys.html#\/\/apple_ref\/doc\/uid\/TP40009252-SW36\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">here<\/a> (Table 2).<\/p>\n<p>Now, <strong>you have one 3D Touch quick action in your iOS app<\/strong>:<\/p>\n<div id=\"attachment_869\" style=\"width: 606px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-869\" class=\"wp-image-869 size-full\" src=\"https:\/\/zaven.co\/blog\/wp-content\/uploads\/2017\/05\/static.png\" alt=\"swift 3d touch quick actions\"  ><p id=\"caption-attachment-869\" class=\"wp-caption-text\">3D Touch quick action<\/p><\/div>\n<p>To handle this action, you need to implement the <code>performActionForShortcutItem<\/code> method in <code>AppDelegate.swift<\/code>:<\/p>\n<pre><code class=\"language-swift\"> \n\n&nbsp;\nfunc application(_ application: UIApplication, performActionFor shortcutItem: UIApplicationShortcutItem, completionHandler: @escaping (Bool) -&gt; Void) {\n        \n        completionHandler(handleShortcutItem(withShortcutItem: shortcutItem))\n}\n \n\n<\/code><\/pre>\n<p>You call <code>completionHandler<\/code> with a <code>Boolean<\/code> value, which you get from <code>handleShortcutItem()<\/code>. True means that you have succeeded with handling your quick actions. False means that you have not succeeded.<\/p>\n<pre><code class=\"language-swift\"> \n\nenum ShortcutType: String {\n        case print = \"Print\"\n    }\n\nfunc handleShortcutItem(withShortcutItem item: UIApplicationShortcutItem) -&gt; Bool {\n        \n        guard let shortcutType = item.type.components(separatedBy: \".\").last else { return false }\n        \n        if let type = ShortcutType(rawValue: shortcutType) {\n            switch type {\n            case .print:\n                print(\"quick action handled!\")\n                return true\n            }\n        }\n        return false\n    }\n\n \n\n<\/code><\/pre>\n<p>Here you have the method, <code>handleShortcutItem()<\/code>, that takes <code>UIApplicationShortcutItem<\/code> as an argument and returns a <code>Boolean<\/code> value depending on the success \/ failure of the quick action. This function checks if the passed <code>shortcutItem<\/code> is the one you are expecting. Then returns true if the type of quick action matches a type in enum <code>ShortcutType<\/code>. So, all the quick action does is print text on the console screen.<\/p>\n<p>Okay, it was super easy and everything works fine. What you did was to define a static array of quick actions. <em>And how about changing actions dynamically?<\/em><\/p>\n<h2>Dynamic 3D Touch Quick Actions in iOS<\/h2>\n<p>Here is your answer to this issue:<\/p>\n<p>Once you have registered a quick action, it cannot be changed. So what you need is to set the characteristics (title and type &#8211; they are both required) to <code>UIApplicationShortcutItem<\/code> during initialization, just before registering them.<br \/>\nTo do that, drag a button to your view and add this code to <code>@IBAction<\/code> (touch up inside).<\/p>\n<pre><code class=\"language-swift\"> \n\nif let bundleID = Bundle.main.bundleIdentifier {\n            \n            \n\tlet type = bundleID + \".DynamicAction\"\n\tlet icon = UIApplicationShortcutIcon(templateImageName: \"ic_add_circle_outline\")\n            \n\tlet newQuickAction = UIApplicationShortcutItem(type: type, localizedTitle: \"New Dynamic Action\", localizedSubtitle: nil, icon: icon, userInfo: nil)\n\tvar existingShortcutItems = UIApplication.shared.shortcutItems ?? []\n\tprint(existingShortcutItems)\n\t\n\tif !existingShortcutItems.contains(newQuickAction) {\n                \n\t\t  existingShortcutItems.append(newQuickAction)\n\t\t  UIApplication.shared.shortcutItems = existingShortcutItems\n\t}\n\n} else {\n    print(\"bundle Id is missing\")\n}\n\n <\/code><\/pre>\n<p>You create <code>newQuickAction<\/code> with a new icon and type which is <code>bundleID<\/code> + name and title. Then, by assigning your action to <code>shortcutItems<\/code> in a shared instance of <code>UIApplication<\/code> class you register it. Finaly, to be prepared for a new coming action, you should also change the enum <code>ShortcutType<\/code> and <code>handleShortcutItem<\/code> method:<\/p>\n<pre><code class=\"language-swift\"> \n\nenum ShortcutType: String {\n        case print = \"Print\"\n        case new = \"DynamicAction\"\n    }\n\nfunc handleShortcutItem(withShortcutItem item: UIApplicationShortcutItem) -&gt; Bool {\n        \n\tguard let shortcutType = item.type.components(separatedBy: \".\").last else { return false }\n        \n\tif let type = ShortcutType(rawValue: shortcutType) {\n\t\t   switch type {\n        case .print:\n            print(\"quick action handled!\u201d\n               return true\n        case .new:\n            print(\"dyamic quick action handled!\")\n        }\n\t}\n\treturn false\n}\n\n \n\n<\/code><\/pre>\n<p>As a result, you have two actions now! It should look exactly like this:<\/p>\n<div id=\"attachment_876\" style=\"width: 410px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-876\" class=\"wp-image-876\" src=\"https:\/\/zaven.co\/blog\/wp-content\/uploads\/2017\/05\/obraz-last.jpg\" alt=\"Dynamic Quick Actions in iOS\"  ><p id=\"caption-attachment-876\" class=\"wp-caption-text\"><strong>3D Touch<\/strong> &#8211; static and dynamic quick actions<\/p><\/div>\n<h2>Summary: 3D Touch Quick Actions Tutorial<\/h2>\n<p>Remember that after the installation of an app, the system will register only static quick actions. Dynamic quick actions in iOS can be registered at runtime.<\/p>\n<p>An important fact is that <strong>the<\/strong> <strong>system limits the number of quick actions. <\/strong>Static actions are displayed first and if there is still some space then an appropriate number of dynamic actions are shown. Keep that in mind.<\/p>\n<p>Apple gives some tips on how to use this quick actions. For example, <strong>every quick action should have an important value for the users, a clear title and a matching icon<\/strong> (but not an emoji). You shouldn\u2019t use quick actions for ease of navigation or notifications also. See more at <a href=\"https:\/\/developer.apple.com\/ios\/human-interface-guidelines\/extensions\/home-screen-actions\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">iOS Interface Guidelines<\/a>.<\/p>\n<p>Check our next tutorial: <a href=\"https:\/\/zaven.co\/blog\/3d-touch-peek-pop-tutorial\/\">3D Touch Peek and Pop Tutorial.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Did you know that the iPhone is able to detect different levels of touch depending on how hard you press? This is all thanks to 3D Touch! Check out how to add 3D Touch quick actions to your iOS apps.<\/p>\n","protected":false},"author":14,"featured_media":891,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[57,5],"tags":[85,89,86,36,75,19,40,84,88],"class_list":["post-865","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ios-development","category-tutorials","tag-3d-touch","tag-3d-touch-quick-actions-tutorial","tag-ios","tag-ios-app-development","tag-ios-developer","tag-ios-development","tag-mobile-app","tag-mobile-apps","tag-quick-actions"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.8.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>3D Touch: iOS Quick Actions Tutorial | Zaven Blog<\/title>\n<meta name=\"description\" content=\"See how to add 3D Touch quick actions to your iOS apps. In Zaven we have prepared a quick and simple tutorial for you. Read it on our blog!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/zaven.co\/blog\/3d-touch-quick-actions-tutorial\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"3D Touch: iOS Quick Actions Tutorial | Zaven Blog\" \/>\n<meta property=\"og:description\" content=\"See how to add 3D Touch quick actions to your iOS apps. In Zaven we have prepared a quick and simple tutorial for you. Read it on our blog!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zaven.co\/blog\/3d-touch-quick-actions-tutorial\/\" \/>\n<meta property=\"og:site_name\" content=\"Zaven Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-05-25T12:45:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-04-08T17:55:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/zaven.co\/blog\/wp-content\/uploads\/2017\/05\/Depositphotos_87968288_original.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2808\" \/>\n\t<meta property=\"og:image:height\" content=\"1872\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Szymon Wereszczy\u0144ski\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Szymon Wereszczy\u0144ski\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/zaven.co\/blog\/3d-touch-quick-actions-tutorial\/\",\"url\":\"https:\/\/zaven.co\/blog\/3d-touch-quick-actions-tutorial\/\",\"name\":\"3D Touch: iOS Quick Actions Tutorial | Zaven Blog\",\"isPartOf\":{\"@id\":\"https:\/\/zaven.co\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/zaven.co\/blog\/3d-touch-quick-actions-tutorial\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/zaven.co\/blog\/3d-touch-quick-actions-tutorial\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/zaven.co\/blog\/wp-content\/uploads\/2017\/05\/Depositphotos_87968288_original.jpg\",\"datePublished\":\"2017-05-25T12:45:19+00:00\",\"dateModified\":\"2025-04-08T17:55:09+00:00\",\"author\":{\"@id\":\"https:\/\/zaven.co\/blog\/#\/schema\/person\/052ee68552f205e1011f429914603b4f\"},\"description\":\"See how to add 3D Touch quick actions to your iOS apps. In Zaven we have prepared a quick and simple tutorial for you. Read it on our blog!\",\"breadcrumb\":{\"@id\":\"https:\/\/zaven.co\/blog\/3d-touch-quick-actions-tutorial\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/zaven.co\/blog\/3d-touch-quick-actions-tutorial\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/zaven.co\/blog\/3d-touch-quick-actions-tutorial\/#primaryimage\",\"url\":\"https:\/\/zaven.co\/blog\/wp-content\/uploads\/2017\/05\/Depositphotos_87968288_original.jpg\",\"contentUrl\":\"https:\/\/zaven.co\/blog\/wp-content\/uploads\/2017\/05\/Depositphotos_87968288_original.jpg\",\"width\":2808,\"height\":1872,\"caption\":\"3d touch\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/zaven.co\/blog\/3d-touch-quick-actions-tutorial\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/zaven.co\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"3D Touch Quick Actions Tutorial\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/zaven.co\/blog\/#website\",\"url\":\"https:\/\/zaven.co\/blog\/\",\"name\":\"Zaven Blog\",\"description\":\"Software development blog. Generative AI, web &amp; mobile applications.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/zaven.co\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/zaven.co\/blog\/#\/schema\/person\/052ee68552f205e1011f429914603b4f\",\"name\":\"Szymon Wereszczy\u0144ski\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/zaven.co\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/9ceb296be9e4eab030e367bd74d5f6ab?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/9ceb296be9e4eab030e367bd74d5f6ab?s=96&d=mm&r=g\",\"caption\":\"Szymon Wereszczy\u0144ski\"},\"description\":\"Szymon is our iOS developer who checks the news from Apple every morning. After hours, he always practices: making music and gym day by day. And he is getting better at Zaven's table-soccer competition!\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/szymon-wereszczynski-61a5a6108\/\"],\"url\":\"https:\/\/zaven.co\/blog\/author\/szymon\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"3D Touch: iOS Quick Actions Tutorial | Zaven Blog","description":"See how to add 3D Touch quick actions to your iOS apps. In Zaven we have prepared a quick and simple tutorial for you. Read it on our 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:\/\/zaven.co\/blog\/3d-touch-quick-actions-tutorial\/","og_locale":"en_US","og_type":"article","og_title":"3D Touch: iOS Quick Actions Tutorial | Zaven Blog","og_description":"See how to add 3D Touch quick actions to your iOS apps. In Zaven we have prepared a quick and simple tutorial for you. Read it on our blog!","og_url":"https:\/\/zaven.co\/blog\/3d-touch-quick-actions-tutorial\/","og_site_name":"Zaven Blog","article_published_time":"2017-05-25T12:45:19+00:00","article_modified_time":"2025-04-08T17:55:09+00:00","og_image":[{"width":2808,"height":1872,"url":"https:\/\/zaven.co\/blog\/wp-content\/uploads\/2017\/05\/Depositphotos_87968288_original.jpg","type":"image\/jpeg"}],"author":"Szymon Wereszczy\u0144ski","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Szymon Wereszczy\u0144ski","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/zaven.co\/blog\/3d-touch-quick-actions-tutorial\/","url":"https:\/\/zaven.co\/blog\/3d-touch-quick-actions-tutorial\/","name":"3D Touch: iOS Quick Actions Tutorial | Zaven Blog","isPartOf":{"@id":"https:\/\/zaven.co\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/zaven.co\/blog\/3d-touch-quick-actions-tutorial\/#primaryimage"},"image":{"@id":"https:\/\/zaven.co\/blog\/3d-touch-quick-actions-tutorial\/#primaryimage"},"thumbnailUrl":"https:\/\/zaven.co\/blog\/wp-content\/uploads\/2017\/05\/Depositphotos_87968288_original.jpg","datePublished":"2017-05-25T12:45:19+00:00","dateModified":"2025-04-08T17:55:09+00:00","author":{"@id":"https:\/\/zaven.co\/blog\/#\/schema\/person\/052ee68552f205e1011f429914603b4f"},"description":"See how to add 3D Touch quick actions to your iOS apps. In Zaven we have prepared a quick and simple tutorial for you. Read it on our blog!","breadcrumb":{"@id":"https:\/\/zaven.co\/blog\/3d-touch-quick-actions-tutorial\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zaven.co\/blog\/3d-touch-quick-actions-tutorial\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zaven.co\/blog\/3d-touch-quick-actions-tutorial\/#primaryimage","url":"https:\/\/zaven.co\/blog\/wp-content\/uploads\/2017\/05\/Depositphotos_87968288_original.jpg","contentUrl":"https:\/\/zaven.co\/blog\/wp-content\/uploads\/2017\/05\/Depositphotos_87968288_original.jpg","width":2808,"height":1872,"caption":"3d touch"},{"@type":"BreadcrumbList","@id":"https:\/\/zaven.co\/blog\/3d-touch-quick-actions-tutorial\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zaven.co\/blog\/"},{"@type":"ListItem","position":2,"name":"3D Touch Quick Actions Tutorial"}]},{"@type":"WebSite","@id":"https:\/\/zaven.co\/blog\/#website","url":"https:\/\/zaven.co\/blog\/","name":"Zaven Blog","description":"Software development blog. Generative AI, web &amp; mobile applications.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zaven.co\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/zaven.co\/blog\/#\/schema\/person\/052ee68552f205e1011f429914603b4f","name":"Szymon Wereszczy\u0144ski","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zaven.co\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/9ceb296be9e4eab030e367bd74d5f6ab?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9ceb296be9e4eab030e367bd74d5f6ab?s=96&d=mm&r=g","caption":"Szymon Wereszczy\u0144ski"},"description":"Szymon is our iOS developer who checks the news from Apple every morning. After hours, he always practices: making music and gym day by day. And he is getting better at Zaven's table-soccer competition!","sameAs":["https:\/\/www.linkedin.com\/in\/szymon-wereszczynski-61a5a6108\/"],"url":"https:\/\/zaven.co\/blog\/author\/szymon\/"}]}},"_links":{"self":[{"href":"https:\/\/zaven.co\/blog\/wp-json\/wp\/v2\/posts\/865","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zaven.co\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zaven.co\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zaven.co\/blog\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/zaven.co\/blog\/wp-json\/wp\/v2\/comments?post=865"}],"version-history":[{"count":24,"href":"https:\/\/zaven.co\/blog\/wp-json\/wp\/v2\/posts\/865\/revisions"}],"predecessor-version":[{"id":69927,"href":"https:\/\/zaven.co\/blog\/wp-json\/wp\/v2\/posts\/865\/revisions\/69927"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/zaven.co\/blog\/wp-json\/wp\/v2\/media\/891"}],"wp:attachment":[{"href":"https:\/\/zaven.co\/blog\/wp-json\/wp\/v2\/media?parent=865"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zaven.co\/blog\/wp-json\/wp\/v2\/categories?post=865"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zaven.co\/blog\/wp-json\/wp\/v2\/tags?post=865"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}