【问题标题】:How to wait for a Flutter app to open before navigating to a particular page by clicking a scheduled notification?如何通过单击预定通知导航到特定页面之前等待 Flutter 应用程序打开?
【发布时间】:2022-01-16 18:30:37
【问题描述】:

我正在处理一个 Flutter 项目,我必须设置一个预定的本地通知,该通知将在每天上午 10 点触发。并且,用户应该在点击通知后被带到应用程序的某个页面。 我已经完成了这部分,当应用程序打开并且用户单击通知时,该功能可以正常工作。 但是当应用程序关闭并触发通知并且用户单击通知时,就会出现问题。它不会将用户带到该特定页面。我试图通过使其成为async 函数来修改点击处理函数。但它没有相应的工作。

有人可以建议我现在该怎么做吗?

【问题讨论】:

  • 您找到解决方案了吗?我也有同样的问题。

标签: flutter async-await navigation flutter-local-notification


【解决方案1】:

创建通知处理程序。

  • 初始化具有高度重要性的通知渠道
  • 就在您的应用程序运行之前,在runApp(yourApp) 之前,创建调用一个您在void main(){} 之前初始化的foregroundMessageHandler
  • foregroundMessageHandler 应该是一个 *TopMost 初始化。
  • 在foregroundMessageHandler 函数中,定义导航行为

【讨论】:

  • 你能分享一些示例代码sn-p吗?顺便说一句,谢谢您的回复!
【解决方案2】:

我不知道您将哪个库用于本地通知。但如果您使用的是 flutter_local_notifications 库,请检查链接:https://pub.dev/packages/flutter_local_notifications ,您可以检查 selectNotification 方法中接收的数据并将用户重定向到所需的页面

void selectNotification(String payload) async {
if (payload != null) {
  debugPrint('notification payload: $payload');
}
await Navigator.push(
  context,
  MaterialPageRoute<void>(builder: (context) => SecondScreen(payload)),
);
}

其他库应该具有相同的功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-27
    • 2019-04-29
    • 2018-10-03
    • 1970-01-01
    • 2019-02-10
    • 2019-08-22
    • 1970-01-01
    相关资源
    最近更新 更多