Flutter 本地通知在 IOS 上未按预期工作

Posted

技术标签:

【中文标题】Flutter 本地通知在 IOS 上未按预期工作【英文标题】:Flutter local notification is not working as expected on IOS 【发布时间】:2022-01-03 15:36:24 【问题描述】:

我的代码如下。它在 android 设备上运行良好,但是当我单击通知时,它不会在 ios 上打开特定屏幕。它只是打开应用程序。我想让它打开特定的屏幕。

    Future<void>  initSettings() async 
    
    
    var initAndorid = AndroidInitializationSettings('my_logo');
    var initIOS = IOSInitializationSettings(
      requestSoundPermission: false,
      requestBadgePermission: false,
      requestAlertPermission: false,
    );
    var initSetting =InitializationSettings(android: initAndorid, iOS: initIOS);
     notificationsPlugin = new FlutterLocalNotificationsPlugin();
    await notificationsPlugin.initialize(initSetting,
        onSelectNotification: notificationSelected);
  

  Future notificationSelected(String? payload) async 
     
     await Navigator.push(
        context,
        MaterialPageRoute(builder: (context) => SpesificScreen())
    ); 
  

它适用于 Android 设备。我该怎么办?提前谢谢...

【问题讨论】:

【参考方案1】:

您可以在应用启动时使用此代码来提供通知的有效负载或导致打开应用并进行导航或我们想做的所有其他工作的详细信息:

var details = await FlutterLocalNotificationsPlugin().getNotificationAppLaunchDetails();
if (details.didNotificationLaunchApp) 
 await Navigator.push(
    context,
    MaterialPageRoute(builder: (context) => SpesificScreen())
 ); 

【讨论】:

感谢您的评论。我尝试了这段代码,但不幸的是没有任何改变。我不知道为什么,但是当我单击通知时,notificationSelected 不起作用。所以我认为这是问题所在。 顺便说一句,相同的代码在 Android 设备上运行 你是否按照 iOS 设置来获取 Flutter 本地通知?你应该添加一些代码到你的 AppDelegate.m/AppDelegate.swift 是的,我做到了。我的问题是当我点击通知时会发生什么。我在接收通知时没有任何问题。 在 notificationSelected 方法中?不,你应该像第一页的 initState 方法一样将它添加到你的应用启动中。

以上是关于Flutter 本地通知在 IOS 上未按预期工作的主要内容,如果未能解决你的问题,请参考以下文章

子报表在 Matrix 上未按预期工作,具有向下钻取功能

在选择器视图上未按下按钮

Flutter Hero 小部件未按预期工作

CKReference 的 CloudKit 订阅通知未按预期工作

颤动 - WebViewController 中的 HTML 文件未按预期在 iOS 模拟器中加载

Flutter - Firebase 云消息传递,iOS 上未收到数据消息