簡體   English   中英

Flutter 本地通知無法顯示

[英]Flutter local notification unable to showup

我正在嘗試使用flutter_local_notifications: ^9.7.0包顯示本地通知。 到目前為止,當我在使用 iphone 13 pro max 的 ios 模擬器中嘗試時,它可以正常工作,但是當我在 iphone 8 中調試時,無法顯示通知。這是代碼 AppDelegate.swift 的一部分:

....

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
  override func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool {
    if #available(iOS 10.0, *) {
      UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
      }
....
....
....
    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  }
}

以及顯示通知的代碼:

Future<void> showNotifications() async {
    await flutterLocalNotificationsPlugin.show(
      21,
      "Title",
      "Subtitle",
      NotificationDetails(android: _androidNotificationDetails),
    );
  }

Future<void> init() async {
    final AndroidInitializationSettings initializationSettingsAndroid =
        AndroidInitializationSettings('@mipmap/ic_launcher');

    final IOSInitializationSettings initializationSettingsIOS =
        IOSInitializationSettings(
            requestSoundPermission: false,
            requestBadgePermission: false,
            requestAlertPermission: false,
           );

    final InitializationSettings initializationSettings =
        InitializationSettings(
            android: initializationSettingsAndroid,
            iOS: initializationSettingsIOS,
            macOS: null);

    tz.initializeTimeZones();

    await flutterLocalNotificationsPlugin.initialize(initializationSettings,
        onSelectNotification: selectNotification);
  }

我在 IOS 設置部分閱讀了文檔( https://pub.dev/packages/flutter_local_notifications ),其中指出:

For older versions of iOS, you need to handle the callback as part of specifying the method that should be fired to the onDidReceiveLocalNotification argument when creating an instance IOSInitializationSettings object that is passed to the function for initializing the plugin.

但我不知道如何配置它,有沒有辦法做到這一點,以便通知也可以顯示在 iphone 8 中?

就像文檔說在創建設置時傳遞回調一樣。

final IOSInitializationSettings initializationSettingsIOS =
      IOSInitializationSettings(
  requestSoundPermission: false,
  requestBadgePermission: false,
  requestAlertPermission: false,
  onDidReceiveLocalNotification: onDidReceiveLocalNotification,
);

...

void onDidReceiveLocalNotification(int id, String title, String body, String payload) async {
...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM