Я пытаюсь добавить Firebase Analytics во Flutter к своему виджету, но использую StoreConnector для отображения двух разных экранов Alpha и Beta. Как поставить аналитику для отслеживания изменений экрана?

class MyWidgetPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return StoreConnector<AppState, MyViewModel>(
      converter: (store) => myViewModel.create(store),
      builder: (context, viewModel) {
        return _body(context, viewModel);
      },
    );
  }

  _body(BuildContext context, MyViewModel viewModel) {
    if (viewModel.withLoading) return _loading();
    if (viewModel.withAlphaContent) return _contentAlpha(context, viewModel);
    if (viewModel.withBetaContent) return _contentBeta(context, viewModel);
    if (viewModel.withRetry) return _retry(context);
  }

...

}
0
Ela 8 Дек 2020 в 17:07

1 ответ

Лучший ответ

Одним из решений может быть использование обратного вызова onDidChange следующим образом:

  @override
  Widget build(BuildContext context) {
    FirebaseAnalytics analytics = FirebaseAnalytics();
    return StoreConnector<AppState, MyViewModel>(
      converter: (store) => myViewModel.create(store),
      onDidChange: (viewModel) {
        if (viewModel.withAlphaContent) {
         analytics.setCurrentScreen(screenName: 'alpha content');
        } 
        if (viewModel.withBetaContent) {
         analytics.setCurrentScreen(screenName: 'beta content');
        }
      },
      builder: (context, viewModel) {
        return _body(context, viewModel);
      },
    );
  }
1
Stefano A. 8 Дек 2020 в 14:43