{"id":5644,"date":"2022-07-07T13:24:34","date_gmt":"2022-07-07T13:24:34","guid":{"rendered":"https:\/\/www.folio3.com\/mobile\/?p=5644"},"modified":"2022-07-07T13:29:13","modified_gmt":"2022-07-07T13:29:13","slug":"screentime-api-ios","status":"publish","type":"post","link":"https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/","title":{"rendered":"Parental Control &#8211; ScreenTime API iOS"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\" id=\"35dd\"><strong>Introduction:<\/strong><\/h1>\n\n\n\n<p id=\"f429\">Recently, Apple released the ScreenTime API for iOS. Although the ScreenTime feature has been there since the release of iOS 13, from iOS 15, Apple has introduced ScreenTime API for developers to allow them to develop apps for their user base with customized UI for an enhanced experience for parental controls. It mostly provides features for parental controls such as allowing parents to add restrictions to apps and websites to their child\u2019s device, enabling parents to set time limits on their child\u2019s usage of the device, and sharing usage of the child\u2019s device with parents.<\/p>\n\n\n\n<p id=\"305e\">ScreenTime API comprises 3 frameworks:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Managed Settings<\/li><li>Family Controls<\/li><li>Device Activity<\/li><\/ol>\n\n\n\n<p id=\"26b9\">Below are the functionalities provided by each framework.<\/p>\n\n\n\n<p id=\"2604\"><strong>Managed Settings Framework:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Shield apps and websites with custom UI<\/li><li>Provides web content filtering<\/li><li>Set restrictions on devices and keep them in place<\/li><li>Provides multiple options for restrictions on AppStore, Media, Safari, Game Center, etc.<\/li><\/ul>\n\n\n\n<p id=\"c751\"><strong>Family Controls Framework<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Authorizes access to Screen Time API on child\u2019s device<\/li><li>Prevents removal\/deletion of your app by the child<\/li><li>Requires parent&#8217;s authorization to remove your app<\/li><li>Provides FamilyActivityPicker to choose apps and websites to restrict<\/li><\/ul>\n\n\n\n<p id=\"4492\"><strong>Device Activity Framework<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Monitors schedules defined by the user and execute code accordingly.<\/li><li>Monitors usage thresholds defined and execute code when threshold reached<\/li><li>The type and time of usage can be defined.<\/li><li>Provides Device Activity extension that executes the code on respective schedules and events without even the child opening the app.<\/li><\/ul>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"0b5d\"><strong>Prerequisites<\/strong><\/h1>\n\n\n\n<ol class=\"wp-block-list\"><li>Apple&nbsp;<strong>Family Sharing<\/strong>&nbsp;needs to be enabled by the user and family members\u2019 Apple ID should be added there<\/li><li>Adding apple id as a family member enables screen time monitoring for all iOS devices associated with that Apple ID.<\/li><li>Child\u2019s Apple ID can be created by a parent or an existing ID with an age below 18 can be added.<\/li><\/ol>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"defc\"><strong>Now let\u2019s code\u2026<\/strong><\/h1>\n\n\n\n<p id=\"3043\">First of all, we need to add a Device Monitor Extension to our target. This acts as a background service on a child\u2019s device for various functionalities.<\/p>\n\n\n\n<p id=\"bf08\">Go to&nbsp;<strong>File &gt; New &gt; Target &gt; Choose Device Activity Monitor Extension<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/1400\/1*D4QVwLt2b7PlzvPB2hvp6Q.png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/1400\/1*DtJWFjUgYf1Hl3ntT6S4YQ.png\" alt=\"\"\/><\/figure>\n\n\n\n<p id=\"794d\">Give the extension the desired name and click Finish. A new group named as your extension will be added in the project. Create a file named as MyMonitor in this group and write the following code.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import UIKit\nimport MobileCoreServices\nimport ManagedSettings\nimport DeviceActivity\n\nclass MyMonitor: DeviceActivityMonitor {\n    let store = ManagedSettingsStore()\n    override func intervalDidStart(for activity: DeviceActivityName) {\n        super.intervalDidStart(for: activity)\n        print(\"interval did start\")\n        let model = MyModel.shared\n        let applications = model.selectionToDiscourage.applicationTokens\n        store.shield.applications = applications.isEmpty ? nil : applications\n        store.dateAndTime.requireAutomaticDateAndTime = true\n    }\n\n    override func intervalDidEnd(for activity: DeviceActivityName) {\n        super.intervalDidEnd(for: activity)\n        store.shield.applications = nil\n        store.dateAndTime.requireAutomaticDateAndTime = false\n    }\n}<\/code><\/pre>\n\n\n\n<p id=\"4d79\">The above code overrides the two methods of Device Activity Monitor which are called on the interval start and end respectively, for the intervals defined in the other parts of code. On interval start, we are restricting user\/child\u2019s device from changing their date and time along with applying shield to all those apps restricted by the parent.<\/p>\n\n\n\n<p id=\"e464\">Now, in the AppDelegate of the main app, write the following code. Also, don\u2019t forget to import&nbsp;<strong>FamilyControls<\/strong>&nbsp;framework in <code>AppDelegate<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\nclass AppDelegate: NSObject, UIApplicationDelegate {\n\n    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: &#91;UIApplication.LaunchOptionsKey : Any]? = nil) -&gt; Bool {\n        AuthorizationCenter.shared.requestAuthorization { result in\n            switch result {\n            case .success:\n                print(\"Success\")\n            case .failure(let error):\n                print(\"error for screentime is \\(error)\")\n            }\n        }\n\n        _ = AuthorizationCenter.shared.$authorizationStatus\n            .sink() {_ in\n            switch AuthorizationCenter.shared.authorizationStatus {\n            case .notDetermined:\n                print(\"not determined\")\n            case .denied:\n                print(\"denied\")\n            case .approved:\n                print(\"approved\")\n            @unknown default:\n                break\n            }\n        }\n        return true\n    }\n}<\/code><\/pre>\n\n\n\n<p id=\"c54b\">The above code will show the below alert to the user for the first time and will require a parent to authenticate on the child\u2019s device.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/916\/1*eC6vk5ntXVbFf3QFP2q0kg.png\" alt=\"\"\/><figcaption>Authorization alert<\/figcaption><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/1300\/1*JODDgk_2z7oplRjjcZUUYA.png\" alt=\"\"\/><figcaption>Authentication required from parent\/guardian<\/figcaption><\/figure><\/div>\n\n\n\n<p id=\"f016\">After parent successfully authenticates the child, the next time alert won\u2019t show up and the child cannot delete the app without the parent\/guardian\u2019s approval just like as above.<\/p>\n\n\n\n<p id=\"e143\">Now create a new Swift file MyModel and write the following code.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import Foundation\nimport FamilyControls\nimport DeviceActivity\nimport ManagedSettings\n\nclass MyModel: ObservableObject {\n    static let shared = MyModel()\n    let store = ManagedSettingsStore()\n\n    private init() {}\n\n    var selectionToDiscourage = FamilyActivitySelection() {\n        willSet {\n            print (\"got here \\(newValue)\")\n            let applications = newValue.applicationTokens\n            let categories = newValue.categoryTokens\n            let webCategories = newValue.webDomainTokens\n            store.shield.applications = applications.isEmpty ? nil : applications\n            store.shield.applicationCategories = ShieldSettings.ActivityCategoryPolicy.specific(categories, except: Set())\n            store.shield.webDomains = webCategories\n        }\n    }\n\n    func initiateMonitoring() {\n        let schedule = DeviceActivitySchedule(intervalStart: DateComponents(hour: 0, minute: 0), intervalEnd: DateComponents(hour: 23, minute: 59), repeats: true, warningTime: nil)\n\n        let center = DeviceActivityCenter()\n        do {\n            try center.startMonitoring(.daily, during: schedule)\n        }\n        catch {\n            print (\"Could not start monitoring \\(error)\")\n        }\n\n        store.dateAndTime.requireAutomaticDateAndTime = true\n        store.account.lockAccounts = true\n        store.passcode.lockPasscode = true\n        store.siri.denySiri = true\n        store.appStore.denyInAppPurchases = true\n        store.appStore.maximumRating = 200\n        store.appStore.requirePasswordForPurchases = true\n        store.media.denyExplicitContent = true\n        store.gameCenter.denyMultiplayerGaming = true\n        store.media.denyMusicService = false\n    }\n}\n\nextension DeviceActivityName {\n    static let daily = Self(\"daily\")\n}<\/code><\/pre>\n\n\n\n<p id=\"dee6\"><strong>FamilyActivitySelection<\/strong>&nbsp;is a picker provided by the FamilyControls framework which displays all the apps, categories, and websites on a child\u2019s device and allows parents to restrict those apps.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/1292\/1*1hNtlwwS1dh36oVsdp8DvA.png\" alt=\"\"\/><figcaption>FamilyActivitySelection picker<\/figcaption><\/figure>\n\n\n\n<p id=\"97f7\">Above code has the method <code>initiateMonitoring<\/code> in which we are creating a schedule for 24 hours named as daily for which the Device activity monitor extension will observe. Along with that, we are setting some additional restrictions for the child such as child cannot change date and time, cannot change apple id, passcode, use Siri, download apps above certain rating and much more.<\/p>\n\n\n\n<p id=\"49b0\">Finally, a view is created in the below code snapshot to display <code>FamilyActivitySelection<\/code> picker on a button click and start monitoring on child\u2019s device after which all the additional restrictions are applied. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import SwiftUI\nimport FamilyControls\n\nstruct ContentView: View {\n    @StateObject var model = MyModel.shared\n    @State var isPresented = false\n    \n    var body: some View {\n        Button(\"Select Apps to Discourage\") {\n            isPresented = true\n        }\n        .familyActivityPicker(isPresented: $isPresented, selection: $model.selectionToDiscourage)\n        Button(\"Start Monitoring\") {\n            model.initiateMonitoring()\n        }\n    }\n}\n\nstruct ContentView_Previews: PreviewProvider {\n    static var previews: some View {\n        ContentView()\n    }\n}<\/code><\/pre>\n\n\n\n<p id=\"838e\">When a child launches a restricted website or app, the following screen appears which is also customizable in a limited scope. We can only change the logo, title and message of the following screen which we haven\u2019t done in this code. Also, a restriction sign appears on the app icon of the restricted app.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/1084\/1*0nxQYJo9OWTK9eAuKvdGSQ.png\" alt=\"\"\/><figcaption>Screen when launching a restricted app.<\/figcaption><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"5f38\"><strong>Issue Found<\/strong><\/h1>\n\n\n\n<p id=\"541e\">Although ScreenTime API provides a package to develop a parental control app there\u2019s a lot of immaturity in the API itself. Implementing the above code should have followed the specific behavior of the app flow mentioned by Apple in WWDC21 while the following were the issues faced.<\/p>\n\n\n\n<p id=\"8281\"><strong>Should be App Flow:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Parent\/Guardian opens the app on the child\u2019s device and authorizes with their Apple ID<\/li><li>Parents can then open the app on their device and choose settings, restrictions, and rules, and ScreenTime API sends that info to the child\u2019s device<\/li><li>Then on the child\u2019s device, it creates schedules and events using the Device Activity extension<\/li><\/ul>\n\n\n\n<p id=\"80e6\"><strong>Issues faced:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>For the first few times, FamilyActivityPicker does not populate the apps on the child\u2019s device under the categories<\/li><li>No option yet for opening the picker for a specific child<\/li><li>Currently, restricting apps only from a child\u2019s device works even if the apps populate in the picker on parent\u2019s device<\/li><li>Does not works on Simulator. Always needs a real device<\/li><li>Error returned from the Authorization is of type NSError and not the FamilyControlsError<\/li><li>This causes problem to get the error type and perform respective actions<\/li><li>Works on iOS 15 and above and requires SwiftUI implementation.<\/li><\/ul>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"d892\"><strong>What\u2019s Next<\/strong><\/h1>\n\n\n\n<p id=\"f369\">Recently Apple has introduced some new features in ScreenTime API all 3 frameworks in WWDC22 but I haven\u2019t explored them yet. These new features are available to explore for iOS 16 and above. Also, this tutorial does not have restriction screen customization which can also be explored.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction: Recently, Apple released the ScreenTime API for iOS. Although the ScreenTime feature has been there since the release of iOS 13, from iOS 15, Apple has introduced ScreenTime API for developers to allow them to develop apps for their user base with customized UI for an enhanced experience for parental controls. It mostly provides &hellip; <a href=\"https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Parental Control &#8211; ScreenTime API iOS&#8221;<\/span><\/a><\/p>\n","protected":false},"author":37,"featured_media":5645,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[47,1],"tags":[],"class_list":["post-5644","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-app-development","category-blog"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Parental Control - ScreenTime API iOS - Mobile App Development Services<\/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:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Parental Control - ScreenTime API iOS - Mobile App Development Services\" \/>\n<meta property=\"og:description\" content=\"Introduction: Recently, Apple released the ScreenTime API for iOS. Although the ScreenTime feature has been there since the release of iOS 13, from iOS 15, Apple has introduced ScreenTime API for developers to allow them to develop apps for their user base with customized UI for an enhanced experience for parental controls. It mostly provides &hellip; Continue reading &quot;Parental Control &#8211; ScreenTime API iOS&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/\" \/>\n<meta property=\"og:site_name\" content=\"Mobile App Development Services\" \/>\n<meta property=\"article:published_time\" content=\"2022-07-07T13:24:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-07-07T13:29:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.folio3.com\/mobile\/wp-content\/uploads\/2022\/07\/Screen-Shot-2022-07-07-at-4.54.56-PM.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2182\" \/>\n\t<meta property=\"og:image:height\" content=\"1222\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Noc Folio3\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Noc Folio3\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/\"},\"author\":{\"name\":\"Noc Folio3\",\"@id\":\"https:\/\/www.folio3.com\/mobile\/#\/schema\/person\/0b6e4f68efbd12d222ac9422766c61eb\"},\"headline\":\"Parental Control &#8211; ScreenTime API iOS\",\"datePublished\":\"2022-07-07T13:24:34+00:00\",\"dateModified\":\"2022-07-07T13:29:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/\"},\"wordCount\":996,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.folio3.com\/mobile\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.folio3.com\/mobile\/wp-content\/uploads\/2022\/07\/Screen-Shot-2022-07-07-at-4.54.56-PM.png\",\"articleSection\":[\"App Development\",\"Blog\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/\",\"url\":\"https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/\",\"name\":\"Parental Control - ScreenTime API iOS - Mobile App Development Services\",\"isPartOf\":{\"@id\":\"https:\/\/www.folio3.com\/mobile\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.folio3.com\/mobile\/wp-content\/uploads\/2022\/07\/Screen-Shot-2022-07-07-at-4.54.56-PM.png\",\"datePublished\":\"2022-07-07T13:24:34+00:00\",\"dateModified\":\"2022-07-07T13:29:13+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/#primaryimage\",\"url\":\"https:\/\/www.folio3.com\/mobile\/wp-content\/uploads\/2022\/07\/Screen-Shot-2022-07-07-at-4.54.56-PM.png\",\"contentUrl\":\"https:\/\/www.folio3.com\/mobile\/wp-content\/uploads\/2022\/07\/Screen-Shot-2022-07-07-at-4.54.56-PM.png\",\"width\":2182,\"height\":1222},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.folio3.com\/mobile\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Parental Control &#8211; ScreenTime API iOS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.folio3.com\/mobile\/#website\",\"url\":\"https:\/\/www.folio3.com\/mobile\/\",\"name\":\"Mobile App Development Services\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.folio3.com\/mobile\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.folio3.com\/mobile\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.folio3.com\/mobile\/#organization\",\"name\":\"Mobile App Development Services\",\"url\":\"https:\/\/www.folio3.com\/mobile\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.folio3.com\/mobile\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.folio3.com\/mobile\/wp-content\/uploads\/2020\/12\/folio3-mobile.png\",\"contentUrl\":\"https:\/\/www.folio3.com\/mobile\/wp-content\/uploads\/2020\/12\/folio3-mobile.png\",\"width\":210,\"height\":50,\"caption\":\"Mobile App Development Services\"},\"image\":{\"@id\":\"https:\/\/www.folio3.com\/mobile\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.folio3.com\/mobile\/#\/schema\/person\/0b6e4f68efbd12d222ac9422766c61eb\",\"name\":\"Noc Folio3\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.folio3.com\/mobile\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/29f05a21b8db20048e7717694b024bbd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/29f05a21b8db20048e7717694b024bbd?s=96&d=mm&r=g\",\"caption\":\"Noc Folio3\"},\"url\":\"https:\/\/www.folio3.com\/mobile\/blog\/author\/noc\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Parental Control - ScreenTime API iOS - Mobile App Development Services","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:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/","og_locale":"en_US","og_type":"article","og_title":"Parental Control - ScreenTime API iOS - Mobile App Development Services","og_description":"Introduction: Recently, Apple released the ScreenTime API for iOS. Although the ScreenTime feature has been there since the release of iOS 13, from iOS 15, Apple has introduced ScreenTime API for developers to allow them to develop apps for their user base with customized UI for an enhanced experience for parental controls. It mostly provides &hellip; Continue reading \"Parental Control &#8211; ScreenTime API iOS\"","og_url":"https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/","og_site_name":"Mobile App Development Services","article_published_time":"2022-07-07T13:24:34+00:00","article_modified_time":"2022-07-07T13:29:13+00:00","og_image":[{"width":2182,"height":1222,"url":"https:\/\/www.folio3.com\/mobile\/wp-content\/uploads\/2022\/07\/Screen-Shot-2022-07-07-at-4.54.56-PM.png","type":"image\/png"}],"author":"Noc Folio3","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Noc Folio3","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/#article","isPartOf":{"@id":"https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/"},"author":{"name":"Noc Folio3","@id":"https:\/\/www.folio3.com\/mobile\/#\/schema\/person\/0b6e4f68efbd12d222ac9422766c61eb"},"headline":"Parental Control &#8211; ScreenTime API iOS","datePublished":"2022-07-07T13:24:34+00:00","dateModified":"2022-07-07T13:29:13+00:00","mainEntityOfPage":{"@id":"https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/"},"wordCount":996,"commentCount":0,"publisher":{"@id":"https:\/\/www.folio3.com\/mobile\/#organization"},"image":{"@id":"https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/#primaryimage"},"thumbnailUrl":"https:\/\/www.folio3.com\/mobile\/wp-content\/uploads\/2022\/07\/Screen-Shot-2022-07-07-at-4.54.56-PM.png","articleSection":["App Development","Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/","url":"https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/","name":"Parental Control - ScreenTime API iOS - Mobile App Development Services","isPartOf":{"@id":"https:\/\/www.folio3.com\/mobile\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/#primaryimage"},"image":{"@id":"https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/#primaryimage"},"thumbnailUrl":"https:\/\/www.folio3.com\/mobile\/wp-content\/uploads\/2022\/07\/Screen-Shot-2022-07-07-at-4.54.56-PM.png","datePublished":"2022-07-07T13:24:34+00:00","dateModified":"2022-07-07T13:29:13+00:00","breadcrumb":{"@id":"https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/#primaryimage","url":"https:\/\/www.folio3.com\/mobile\/wp-content\/uploads\/2022\/07\/Screen-Shot-2022-07-07-at-4.54.56-PM.png","contentUrl":"https:\/\/www.folio3.com\/mobile\/wp-content\/uploads\/2022\/07\/Screen-Shot-2022-07-07-at-4.54.56-PM.png","width":2182,"height":1222},{"@type":"BreadcrumbList","@id":"https:\/\/www.folio3.com\/mobile\/blog\/screentime-api-ios\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.folio3.com\/mobile\/"},{"@type":"ListItem","position":2,"name":"Parental Control &#8211; ScreenTime API iOS"}]},{"@type":"WebSite","@id":"https:\/\/www.folio3.com\/mobile\/#website","url":"https:\/\/www.folio3.com\/mobile\/","name":"Mobile App Development Services","description":"","publisher":{"@id":"https:\/\/www.folio3.com\/mobile\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.folio3.com\/mobile\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.folio3.com\/mobile\/#organization","name":"Mobile App Development Services","url":"https:\/\/www.folio3.com\/mobile\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.folio3.com\/mobile\/#\/schema\/logo\/image\/","url":"https:\/\/www.folio3.com\/mobile\/wp-content\/uploads\/2020\/12\/folio3-mobile.png","contentUrl":"https:\/\/www.folio3.com\/mobile\/wp-content\/uploads\/2020\/12\/folio3-mobile.png","width":210,"height":50,"caption":"Mobile App Development Services"},"image":{"@id":"https:\/\/www.folio3.com\/mobile\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.folio3.com\/mobile\/#\/schema\/person\/0b6e4f68efbd12d222ac9422766c61eb","name":"Noc Folio3","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.folio3.com\/mobile\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/29f05a21b8db20048e7717694b024bbd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/29f05a21b8db20048e7717694b024bbd?s=96&d=mm&r=g","caption":"Noc Folio3"},"url":"https:\/\/www.folio3.com\/mobile\/blog\/author\/noc\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.folio3.com\/mobile\/wp-json\/wp\/v2\/posts\/5644"}],"collection":[{"href":"https:\/\/www.folio3.com\/mobile\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.folio3.com\/mobile\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.folio3.com\/mobile\/wp-json\/wp\/v2\/users\/37"}],"replies":[{"embeddable":true,"href":"https:\/\/www.folio3.com\/mobile\/wp-json\/wp\/v2\/comments?post=5644"}],"version-history":[{"count":2,"href":"https:\/\/www.folio3.com\/mobile\/wp-json\/wp\/v2\/posts\/5644\/revisions"}],"predecessor-version":[{"id":5647,"href":"https:\/\/www.folio3.com\/mobile\/wp-json\/wp\/v2\/posts\/5644\/revisions\/5647"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.folio3.com\/mobile\/wp-json\/wp\/v2\/media\/5645"}],"wp:attachment":[{"href":"https:\/\/www.folio3.com\/mobile\/wp-json\/wp\/v2\/media?parent=5644"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.folio3.com\/mobile\/wp-json\/wp\/v2\/categories?post=5644"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.folio3.com\/mobile\/wp-json\/wp\/v2\/tags?post=5644"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}