Hello Argun,
Thank you for your assistance. I'd like to delve deeper into the Notification Service Extension capabilities and its fit for our parental control app, Superr. Our application ensures transparency and involves both parents and children in the digital management process.
Visibility of Notifications: We do not require that the notifications remain hidden or discreet. Our application acts as a digital parenting assistant, and part of its function is to keep children informed about the changes or restrictions applied, promoting transparency in digital parenting.
Use Case and Requirements:
Our app includes two main components: a parent app and a child app. When a parent modifies settings, such as setting time restrictions or blocking certain apps, these changes need to be communicated immediately and reliably to the child's device.
Example Scenario:
Parent Action: A parent decides to set a new screen time schedule from 7 PM to 9 PM for educational apps on the child’s device and blocks a gaming app that was previously allowed.
Notification Trigger: These settings are updated in the parent app, triggering a push notification to the child’s device.
Child App Response: Upon receiving this notification, the child app must:
Fetch the latest configuration from our server.
Serialize the data and update the CoreData database.
Apply the new screen time schedule.
Block the specified gaming app.
Key Questions:
Execution Time Limit: Can you specify how much time is typically allotted for operations within the didReceive(_:withContentHandler:) method of the Notification Service Extension? Is this typically sufficient to handle complex tasks such as data serialization, CoreData updates, and settings applications? as quotes from document - "That method has a limited amount of time to perform its task and execute the provided completion block."
Reliability: How reliable is the Notification Service Extension for ensuring that tasks, particularly those crucial for enforcing parental controls, are executed without being skipped? Are there particular conditions under which the extension might fail to perform as expected?
We aim to ensure robust and timely updates to maintain the efficacy of parental controls. Your insights on the above points will greatly assist us in optimizing our approach.
Thank you once again for your time and assistance.
Post
Replies
Boosts
Views
Activity
@Engineer
Additionally, obtaining clarity on these aspects of the Notification Service Extension will be instrumental in helping us assess whether this solution best fits our needs or if we should consider alternative methods. Your guidance is crucial as it will directly influence our strategy to ensure seamless and effective implementation of parental controls within our app. We are committed to creating a robust and reliable environment for families using Superr and deeply value the expert advice you provide to help us achieve this.
Thank you again for your support and expertise.
We recently implemented a Network Service Extension (NSE) and tested its capabilities to perform the following tasks when receiving a network service extension call:
Apply App Restriction Using Managed Settings:
We attempted to apply app restrictions using the ManagedSettings API from within the NSE. However, we found that this approach does not work directly from the NSE.
Managed Settings in Family Control Documentation
Add a Device Activity Schedule Directly from NSE:
We also tried to add a device activity schedule using the DeviceActivity API from within the NSE. Similar to the managed settings, this approach also proved to be unsuccessful.
Device Activity Schedule in Family Control Documentation
Additionally, we explored running a background task from the NSE. However, it was discovered that most of the main app functionalities cannot be triggered from the NSE. Despite these limitations, we were able to save data to UserDefaults or Core Data successfully from the NSE.
If you have any suggestions or alternative approaches to achieving these tasks from within an NSE, your input would be greatly appreciated.
Is this working for you yet. Like are the both in sync now?
If silent push notifications are not recommended, what alternative methods can ensure immediate and consistent code execution after a push notification is sent? We were advised to use the UNNotificationServiceExtension in a forum post, but it doesn’t allow access to managed settings or essential functionalities like Device Activity.
For anyone in the future seeing this issue:
Cannot convert value of type 'ApplicationToken' (aka 'Token<Application>') to expected argument type 'LabelStyleConfiguration'
Please verify if you have family control imported in the file.
import FamilyControls
Hi Rico
Currently, we're considering asking parents to input either their child’s iOS name or Apple ID to identify each child, but this is just one option we're exploring.
We have already parsed the name from DeviceActivityData, so we can filter based on that i think not sure how. Our primary goal is to find a reliable way to filter and display individual children's ScreenTime data, similar to how Apple’s ScreenTime feature shows separate reports for each child.
Given that Apple’s implementation successfully differentiates and displays individual ScreenTime reports, we’re looking for guidance on how to achieve this using the ScreenTime API. Any suggestions or best practices for filtering data for individual children would be greatly appreciated.
@Engineer @rico Any help with this that you know of?