【发布时间】:2020-05-03 14:38:03
【问题描述】:
我正在制作一个简单的应用程序,它使用 WebView 小部件作为它的主要小部件。我希望能够从 firebase 控制台向 所有 用户发送通知。该应用程序没有身份验证。
我的 MessageHandler(在 main.dart 中定义)
class MessageHandler extends StatefulWidget {
@override
_MessageHandlerState createState() => _MessageHandlerState();
}
class _MessageHandlerState extends State<MessageHandler>{
final FirebaseMessaging _fcm = FirebaseMessaging();
@override
void initState(){
super.initState();
_fcm.configure(
onMessage: (Map<String, dynamic> message) async {
print("here");
print("onMessage: $message");
final snackbar = SnackBar(
content: Text(message['notification']['title']),
);
},
);
主要
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: "Simple App",
home: WebViewer()
);
}
}
WebViewer 小部件有效,所以我没有将它添加到问题中。 在 Firebase 控制台上,消息似乎已发送
但警报不会出现在 Android 模拟器上,snackbar 也不会出现。
网络视图
class WebViewer extends StatelessWidget {
final Completer<WebViewController> _controller = Completer<WebViewController>();
//FirebaseMessaging _firebaseMessaging = new FirebaseMessaging();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Center(child: Text("Event Viewer")),
),
body: WebView(
initialUrl: "https://google.com",
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (WebViewController webViewController){
_controller.complete(webViewController);
},
)
);
【问题讨论】:
-
你在哪里访问
webViewer中的消息处理程序?打印也没有出现? -
@PeterHaddad 打印没有出现,我将编辑问题以添加该代码。
-
Firebase 通知不适用于模拟器。
标签: android firebase flutter google-cloud-messaging