本文介绍了Flutter Web:Flutter Web应用程序是否支持Firebase Analytics?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我们可以在Flutter Web应用程序中实施Firebase Analytics吗?如果没有,还有其他选择吗?
Can we implement Firebase Analytics in a Flutter Web application? If not, is there any other option?
推荐答案
从firebase 7.0.0开始( https://pub.dev/packages/firebase/versions/7.0.0 ),则可以在Flutter Web应用程序中使用分析功能.
Starting with firebase 7.0.0 ( https://pub.dev/packages/firebase/versions/7.0.0 ), you can use analytics in your Flutter web application.
以下是步骤:
- 在您的主机页面中初始化Firebase
<body>
<!-- Initialize Firebase -->
<script src="/__/firebase/7.6.1/firebase-app.js"></script>
<script src="/__/firebase/7.6.1/firebase-analytics.js"></script>
<script src="/__/firebase/init.js"></script>
<!-- Initialize app -->
<script src="main.dart.js" type="application/javascript"></script>
</body>
- 导入firebase软件包
import 'package:firebase/firebase.dart';
- 这时,您可以通过analytics()访问Analytics对象.如果您想自动发送页面浏览量,可以引入一个路线观察者
class AnalyticsRouteObserver extends RouteObserver<PageRoute<dynamic>> {
final Analytics analytics;
AnalyticsRouteObserver({@required this.analytics});
void _sendPageView(PageRoute<dynamic> route) {
var pageName = route.settings.name;
if (null != analytics) {
analytics.setCurrentScreen(pageName);
} else {
print('pageName: $pageName');
}
}
@override
void didPush(Route<dynamic> route, Route<dynamic> previousRoute) {
super.didPush(route, previousRoute);
if (route is PageRoute) {
_sendPageView(route);
}
}
@override
void didReplace({Route<dynamic> newRoute, Route<dynamic> oldRoute}) {
super.didReplace(newRoute: newRoute, oldRoute: oldRoute);
if (newRoute is PageRoute) {
_sendPageView(newRoute);
}
}
@override
void didPop(Route<dynamic> route, Route<dynamic> previousRoute) {
super.didPop(route, previousRoute);
if (previousRoute is PageRoute && route is PageRoute) {
_sendPageView(previousRoute);
}
}
}
- 最后在您的应用中注册路线观察者
import 'dart:js' as js;
...
Widget build(BuildContext context) {
return MaterialApp(
navigatorObservers: [AnalyticsRouteObserver(analytics: js.context.hasProperty('firebase')?analytics():null)],
...
}
这篇关于Flutter Web:Flutter Web应用程序是否支持Firebase Analytics?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!