Skip to main content

Virtual Fitness (Video On-Demand)

Virtual Fitness integrates with third‑party video content providers (e.g., NEOU, Lifetime Digital). These usually open in WebViews or external apps. They count as activities once consumed. Additional partner setup is required.


What you can build

  • “On-demand classes” tab powered by third-party video providers.
  • Profile status page showing registration state.
  • Disconnect flows for unlinking providers.

Permissions & threading

  • No local permissions needed, but requires configured partner accounts.

Check status / register / disconnect

Android (Kotlin)

val registered = withContext(Dispatchers.IO) {
AFCore.virtualFitness().isMemberRegisteredToNeou()
}

val ok = withContext(Dispatchers.IO) {
AFCore.virtualFitness().registerNEOUProfile()
}

iOS (Swift)

let registered = try await AFCore.shared.virtualFitness().isMemberRegisteredToNeou()

let ok = try await AFCore.shared.virtualFitness().registerNEOUProfile()

UI patterns & tips

  • Open partner links in WebViews inside your app.
  • Provide context that this is third-party content.

Error handling

  • Handle partner downtime gracefully.
  • Retry register/disconnect on network failures.

Quick reference

AFCore.virtualFitness().isMemberRegisteredToNeou()
AFCore.virtualFitness().registerNEOUProfile()
AFCore.virtualFitness().disconnectNEOUProfile()
AFCore.virtualFitness().isMemberRegisteredToLifetimeDigital()
AFCore.virtualFitness().registerLifetimeDigitalProfile()
AFCore.virtualFitness().disconnectLifetimeDigitalProfile()