+7
−0
+61
−0
+32
−0
+69
−0
+42
−0
Loading
Three ways into the app from outside it.
Podcast links. The app registers podcast://, pcast://, itpc:// and
feed://, the schemes "subscribe" buttons use. A link opens the podcast's
page when it is already subscribed, a preview to subscribe from
otherwise: a link tapped on a web page should not subscribe to anything
by itself. PodcastLink turns either spelling — the scheme standing in
for http(s), or put in front of a complete address — into a feed URL.
OPML files. The app declares the OPML type and offers itself under
"Ouvrir avec" in Files and the Finder; the file goes through the same
import as the file picker and drag and drop.
Handoff. HandoffCoordinator advertises the episode in the player as a
user activity, refreshed on play, pause and every ten seconds of
listening. Libraries do not share identifiers, so ListeningHandoff names
the episode by its feed, its guid and its media address — compared
without its query, where hosts append tokens that change on every
fetch. The receiving device plays it from the position handed over,
opens the podcast when it does not have the episode yet, or previews
the feed when it is not subscribed.
All three may be what launches the app, so they wait for the library to
load before deciding what they point to. On macOS the main window takes
them instead of each one opening a new window.
Verified on an iOS 27 simulator, app terminated beforehand: a feed://
link to a subscribed podcast opens its page, a podcast:// link to an
unknown feed opens the preview, and "Ouvrir avec › Skingomz" on an .opml
in Files imports it. 14 tests cover the link parsing and the Handoff
payload and matching. Not run: Handoff itself, which needs two devices
on one iCloud account, and everything on macOS — it builds, but the Mac
was locked, its keychain with it, and the app blocks on the keychain at
launch.
Co-Authored-By:
Claude Opus 5.5 <noreply@anthropic.com>