How the iOS Share Sheet Adds Links to Safari's Reading List

This article explains the technical and user-facing mechanisms that allow the iOS Share Sheet to save web links from third-party applications directly into the Safari Reading List. By leveraging Apple's system-wide App Extensions framework and standardized data types, iOS enables apps to pass URLs directly to Safari in the background, allowing users to save articles for offline reading without ever leaving their current app.

The Underlying Technology: App Extensions

The ability to send a link from an app like X (formerly Twitter), Reddit, or Chrome directly to Safari relies on iOS App Extensions and the UIActivityViewController class, commonly known as the Share Sheet.

iOS operates on a "sandboxed" security model, meaning apps are isolated and cannot directly access the data of other apps. To bypass this safely, Apple uses the Share Sheet as a secure broker.

Here is how the process works behind the scenes:

  1. Data Identification: When you tap the Share button in a third-party app, that app packages the content you are viewing into a standardized format. For web links, it uses a Uniform Type Identifier (UTI) known as public.url.
  2. System Broadcast: The third-party app hands this public.url package to the iOS Share Sheet.
  3. Action Matching: The Share Sheet scans the operating system for any apps or system services registered to accept the public.url data type.
  4. Presenting the Option: Because Safari is integrated into the core of iOS, its "Add to Reading List" action is automatically registered to accept URLs. The Share Sheet subsequently displays this option to the user.

Background Execution and iCloud Sync

When a user taps "Add to Reading List" on the Share Sheet, the third-party app does not actually communicate with Safari. Instead, the Share Sheet triggers a tiny, independent background process called an Action Extension.

This extension takes the URL payload, injects it directly into Safari's local database, and immediately terminates. Because this happens via a lightweight background thread, the user's current app remains open and uninterrupted.

Once the URL is in Safari's database, a background daemon handles the rest:

  • Metadata Fetching: iOS briefly connects to the URL in the background to grab the page title and a thumbnail image.
  • Offline Caching: If the user has enabled automatic offline saving in their iOS Settings, the system downloads the webpage's text and images in the background so it can be read without an internet connection.
  • iCloud Syncing: The link is pushed to the user's iCloud account, making it instantly available in the Safari Reading List on their Mac, iPad, or other iOS devices.

How to Use the Feature

For the system to work, the third-party app simply needs to use the standard iOS Share Sheet rather than a custom-built sharing menu.

  1. Tap the Share button (typically a box with an upward-pointing arrow) inside any third-party app.
  2. Ensure the Share Sheet is recognizing a link (you will usually see the website's URL and title at the very top of the menu).
  3. Scroll down the list of actions below the row of app icons.
  4. Tap Add to Reading List.

If the option is missing, the third-party app may be sharing plain text (such as the title of a post) rather than a recognized public.url data type. In this scenario, copying the link directly provides the necessary URL format for the Share Sheet to recognize it.