如何在Flutter中为iOS创建闹钟应用程序

6

我想要做的是设定一个时间并在特定时间运行后台进程(Dart),就像任何基本的闹钟应用程序一样。 我搜索了很多,但在iOS上没有找到任何有用的东西。 我需要它是Dart语言编写的,因为我不能使用平台通道。

3个回答

9
我使用flutter本地通知包找到了解决问题的方法。您可以安排未来的通知,在前台、后台和应用程序终止时都可以工作,因此涵盖所有情况,并在我的情况下完美地工作。如果您需要像iOS闹钟或提醒那样的功能,它可以为您完成工作。
var scheduledNotificationDateTime =
    DateTime.now().add(Duration(seconds: 5));
var androidPlatformChannelSpecifics =
    AndroidNotificationDetails('your other channel id',
        'your other channel name', 'your other channel description');
var iOSPlatformChannelSpecifics =
    IOSNotificationDetails();
NotificationDetails platformChannelSpecifics = NotificationDetails(
    androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics);
await flutterLocalNotificationsPlugin.schedule(
    0,
    'scheduled title',
    'scheduled body',
    scheduledNotificationDateTime,
    platformChannelSpecifics);

当我预定通知在大约1小时后,并将应用程序置于后台时,我从未收到过它们。它们都会在我再次打开应用程序时显示出来。在红米Note 8T上。 - bounxye

0
如果您需要在应用程序处于后台时播放警报音频,我可能有一个解决方案。
我刚刚发布了一个可以轻松集成iOS和Android的警报的软件包。它利用了平台通道。

https://pub.dev/packages/alarm


0

嗨@gdelat,我已经按照Flutter文档中提到的使用了闹钟插件,在IOS上收到了以下错误。在Android上,它的工作正常。

alarm/SwiftAlarmPlugin.swift:16: 致命错误:'try!'表达式意外地引发了一个错误:Error Domain=NSOSStatusErrorDomain Code=561015905 "(null)" 2023-02-10 12:55:17.197468+0800 Runner[25375:1895342] alarm/SwiftAlarmPlugin.swift:16: 致命错误:'try!'表达式意外地引发了一个错误:Error Domain=NSOSStatusErrorDomain Code=561015905 "(null)"


抱歉,使用回答不是合适的地方,因为您没有回答实际问题。请在您认为有关的答案下使用子评论。您可以在此处帮助软件包维护者提出问题:https://github.com/gdelataillade/alarm/issues另外,如果您复制粘贴日志,应尽可能简短,只包含相关数据。希望我能帮到您。 - PrzemekTom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接