runTvApp function
Entry point equivalent to runApp with RCU initialization on tvOS. On iOS / Android / other platforms this is a straight passthrough.
void main() => runTvApp(const MyApp());
Custom WidgetsBinding subclasses. runTvApp force-installs the
concrete WidgetsFlutterBinding. If your app uses a custom binding
subclass (e.g. for analytics observers), initialize it first and then
wire up RCU manually:
void main() {
MyCustomBinding.ensureInitialized();
if (FlutterTvosPlatform.isTvos) {
TvRemoteController.instance.init();
}
runApp(const MyApp());
}
Hot restart. On hot restart the Dart VM re-initializes static
state: TvRemoteController.instance._initialized resets to false
and its channel handlers disappear. runTvApp is not re-invoked —
only cold restart re-registers the RCU listeners. If the Remote
appears dead after a hot restart, do a cold restart.
Implementation
void runTvApp(Widget app) {
WidgetsFlutterBinding.ensureInitialized();
if (FlutterTvosPlatform.isTvos) {
TvRemoteController.instance.init();
}
runApp(app);
}