Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振:通知没有';使用fcm时,无法在特定页面中打开_Flutter_Dart_Push Notification_Firebase Cloud Messaging - Fatal编程技术网

Flutter 颤振:通知没有';使用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

我在我的应用程序中使用fcm进行推送通知,我想在特定屏幕中打开通知,但它不会发生,只会在两种情况下打开通知:第一种是导航到我使用的最后一个屏幕,或者导航到我的主屏幕 这是我的代码,我正在启动屏幕中使用它

 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

谁能告诉我怎么了