iOS: the page itself offline (App-Bound Domains, so the service worker runs) #435

Closed
opened 2026-11-08 11:39:09 -08:00 by rays · 2 comments
Owner

Episodes kept on the phone play with no connection (#425), but the app cannot open the page without one: a WKWebView runs no service worker, so #389's offline page and lists are not there. WKAppBoundDomains in the Info.plist (the server, and Cloudflare Access's and Authentik's hosts for sign-in) with limitsNavigationsToAppBoundDomains turns service workers on; only for a server in that list, since the list is fixed at build time. Check what it costs: navigation to any other domain is refused in the web view.

Episodes kept on the phone play with no connection (#425), but the app cannot open the page without one: a WKWebView runs no service worker, so #389's offline page and lists are not there. WKAppBoundDomains in the Info.plist (the server, and Cloudflare Access's and Authentik's hosts for sign-in) with limitsNavigationsToAppBoundDomains turns service workers on; only for a server in that list, since the list is fixed at build time. Check what it costs: navigation to any other domain is refused in the web view.
rays added the enhancement label 2026-11-08 11:39:09 -08:00
Author
Owner

Done in b455c1e, TestFlight build 9; app only, no deploy needed. WKAppBoundDomains: ipodderx.sdf1.net, rays-sdf1.cloudflareaccess.com, authentik.sdf1.net (debug builds add localhost). Simulator: opened twice online, server stopped, relaunch showed iPX from the service worker; on the app-bound host the bridge still works (host can sleep,route, native playback). To check on the phone: sign-in through Access and Authentik still completes inside the app; offline launch after a couple of online ones; item links open in Safari; an item with an embedded video.

Done in b455c1e, TestFlight build 9; app only, no deploy needed. WKAppBoundDomains: ipodderx.sdf1.net, rays-sdf1.cloudflareaccess.com, authentik.sdf1.net (debug builds add localhost). Simulator: opened twice online, server stopped, relaunch showed iPX from the service worker; on the app-bound host the bridge still works (host can sleep,route, native playback). To check on the phone: sign-in through Access and Authentik still completes inside the app; offline launch after a couple of online ones; item links open in Safari; an item with an embedded video.
Author
Owner

Confirmed on the phone: iPX opens in airplane mode from the service worker. Sign-in through Access and Authentik inside the app-bound web view has not been exercised yet (the Access session lasts 730h); a sign-in that fails there gets an issue of its own.

Confirmed on the phone: iPX opens in airplane mode from the service worker. Sign-in through Access and Authentik inside the app-bound web view has not been exercised yet (the Access session lasts 730h); a sign-in that fails there gets an issue of its own.
rays closed this issue 2026-11-08 16:23:42 -08:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: rays/ipx#435