Flutter 颤振:通知没有';使用fcm时,无法在特定页面中打开
我在我的应用程序中使用fcm进行推送通知,我想在特定屏幕中打开通知,但它不会发生,只会在两种情况下打开通知:第一种是导航到我使用的最后一个屏幕,或者导航到我的主屏幕 这是我的代码,我正在启动屏幕中使用它Flutter 颤振:通知没有';使用fcm时,无法在特定页面中打开,flutter,dart,push-notification,firebase-cloud-messaging,Flutter,Dart,Push Notification,Firebase Cloud Messaging,我在我的应用程序中使用fcm进行推送通知,我想在特定屏幕中打开通知,但它不会发生,只会在两种情况下打开通知:第一种是导航到我使用的最后一个屏幕,或者导航到我的主屏幕 这是我的代码,我正在启动屏幕中使用它 void configureFirebase(FirebaseMessaging _firebaseMessaging) { try { _firebaseMessaging.configure( onMessage: notificationOnMessa
void configureFirebase(FirebaseMessaging _firebaseMessaging) {
try {
_firebaseMessaging.configure(
onMessage: notificationOnMessage,
onLaunch: notificationOnLaunch,
onResume: notificationOnResume,
);
} catch (e) {
print(CustomTrace(StackTrace.current, message: e));
print(CustomTrace(StackTrace.current, message: 'Error Config Firebase'));
}
}
Future notificationOnResume(Map<String, dynamic> message) async {
print(CustomTrace(StackTrace.current, message: message['data']['id']));
try {
if (message['data']['id'] == "orders") {
settingRepo.navigatorKey.currentState
.pushReplacementNamed('/Pages', arguments: 2);
} else if (message['data']['id'] == "messages") {
settingRepo.navigatorKey.currentState
.pushReplacementNamed('/Pages', arguments: 3);
} else {
Navigator.of(context).pushReplacementNamed('/Pages', arguments: 0);
}
} catch (e) {
print(CustomTrace(StackTrace.current, message: e));
}
}
Future notificationOnLaunch(Map<String, dynamic> message) async {
String messageId = await settingRepo.getMessageId();
try {
if (messageId != message['google.message_id']) {
await settingRepo.saveMessageId(message['google.message_id']);
if (message['data']['id'] == "orders") {
settingRepo.navigatorKey.currentState
.pushReplacementNamed('/Pages', arguments: 2);
} else if (message['data']['id'] == "messages") {
settingRepo.navigatorKey.currentState
.pushReplacementNamed('/Pages', arguments: 3);
} else {
Navigator.of(context).pushReplacementNamed('/Pages', arguments: 0);
}
}
} catch (e) {
print(CustomTrace(StackTrace.current, message: e));
}
}
Future notificationOnMessage(Map<String, dynamic> message) async {
Fluttertoast.showToast(
msg: message['notification']['title'],
toastLength: Toast.LENGTH_LONG,
gravity: ToastGravity.TOP,
timeInSecForIosWeb: 6,
);
}
void配置Firebase(FirebaseMessaging\u FirebaseMessaging){
试一试{
_firebaseMessaging.configure(
onMessage:notificationOnMessage,
onLaunch:notificationOnLaunch,
onResume:notificationOnResume,
);
}捕获(e){
打印(CustomTrace(StackTrace.current,消息:e));
打印(CustomTrace(StackTrace.current,消息:'Error Config Firebase');
}
}
Future notificationOnResume(映射消息)异步{
打印(CustomTrace(StackTrace.current,message:message['data']['id']);
试一试{
如果(消息['data']['id']=“订单”){
settingRepo.navigatorKey.currentState
.pushReplacementNamed('/Pages',参数:2);
}else if(消息['data']['id']=“消息”){
settingRepo.navigatorKey.currentState
.pushReplacementNamed('/Pages',参数:3);
}否则{
Navigator.of(context).pushReplacementNamed('/Pages',参数:0);
}
}捕获(e){
打印(CustomTrace(StackTrace.current,消息:e));
}
}
未来通知启动(映射消息)异步{
字符串messageId=await settingRepo.getMessageId();
试一试{
if(messageId!=message['google.message\u id']){
等待设置repo.saveMessageId(message['google.message_id']);
如果(消息['data']['id']=“订单”){
settingRepo.navigatorKey.currentState
.pushReplacementNamed('/Pages',参数:2);
}else if(消息['data']['id']=“消息”){
settingRepo.navigatorKey.currentState
.pushReplacementNamed('/Pages',参数:3);
}否则{
Navigator.of(context).pushReplacementNamed('/Pages',参数:0);
}
}
}捕获(e){
打印(CustomTrace(StackTrace.current,消息:e));
}
}
Future notificationOnMessage(映射消息)异步{
烤面包片(
msg:message['notification']['title'],
烤面包片长度:烤面包片长度,
重力:ToastGravity.TOP,
时间:6,
);
}
我在调试控制台中得到这个
服务获取错误:权限被拒绝:对此API的请求
firebaseinappmessaging.googleapis.com方法
google.internal.firebase.inappmessaging.v1.sdkserving.InAppMessagingSdkServing.FetchEligibleCampaigns
你被封锁了
注意:我在firebase设置中添加了sha1
谁能告诉我怎么了