gpt4 book ai didi

android - Firebase 消息 : Infinite onLaunch Loop

转载 作者:IT王子 更新时间:2023-10-29 06:44:11 26 4
gpt4 key购买 nike

我用 Flutter 构建了一个 Android 应用,并在该应用上集成了 Firebase Messaging。

我一直遇到一个问题,如果 Android 设备在应用程序关闭时收到通知;该通知将无限启动 onLaunch

我开了一个问题 github::flutter/flutter/issues/18524 ,但希望有人解决了问题(或知道原因)。

我试过移动下面的代码,但仍然看到相同的结果。即使在设备上进行全新安装后,我仍然会看到问题。

有人遇到过这个吗?

@override
void initState() {
super.initState();

/// Navigate to item based on message type
///
void _navigateToItemDetail(Map<String, dynamic> message) {
if (message.containsKey("type")) {
// handle messages by type
String type = message["type"];
String _id = message["_id"] ?? "";
switch (type) {
case "private_message":
Application.router.navigateTo(context, "/private_message/$_id");
break;
case "announcement":
FlutterWebBrowser.openWebPage(
url: message["url"] ?? "https://me.app",
androidToolbarColor: Colors.red
);
break;
case "public_message":
Application.router.navigateTo(context, "/public_message/$_id");
break;
default:
}
}
}

Future<Null> _showItemDialog(Map<String, dynamic> message, BuildContext ctx) async {
return showDialog<Null>(
context: ctx,
barrierDismissible: false, // user must tap button!
builder: (BuildContext context) {
return new AlertDialog(
title: new Text(
'New Notification!',
style: new TextStyle(
fontWeight: FontWeight.w800,
)
),
content: new SingleChildScrollView(
child: new ListBody(
children: <Widget>[
new Text(message["summary"] ?? "You have a message"),
],
),
),
actions: <Widget>[
new FlatButton(
textColor: Colors.red[900],
child: new Text(
"View",
style: new TextStyle(fontFamily: "Roboto")
),
onPressed: () {
_navigateToItemDetail(message);
Navigator.pop(context);
}
),
new FlatButton(
textColor: Colors.red[900],
child: new Text('Ignore', style: new TextStyle(fontFamily: "Roboto")),
onPressed: () {
Navigator.pop(context);
},
),
],
);
},
).then((shs) {
print("$shs results");
});
}

_firebaseMessaging.configure(
onMessage: (Map<String, dynamic> message) {
print("onMessage: $message");
_showItemDialog(message, context);
},
onLaunch: (Map<String, dynamic> message) {
print("onLaunch: $message");
_navigateToItemDetail(message);
},
onResume: (Map<String, dynamic> message) {
print("onResume: $message");
_navigateToItemDetail(message);
},
);
}

最佳答案

问题不在于 Firebase Messaging。

对于发现自己在这里的任何其他人:

我有一个基于 Flutter 中的演示的 BottomNavigation。我正在导航到相同的 BottomNavigation,这导致了无限导航循环。

关于android - Firebase 消息 : Infinite onLaunch Loop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50946923/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com