Flutter集成OneSignal时如何设置setNotificationOpenedHandler方法?
OneSignal Flutter SDK 3.x+ 替代 setNotificationOpenedHandler 的方案
你遇到的是OneSignal Flutter SDK版本迭代后的API变更问题——旧版本的setNotificationOpenedHandler在3.x及以上版本中被重构为新的监听方法,具体替代方案如下:
- 替代方法为
OneSignal.Notifications.addClickListener,它可以捕获用户点击通知(无论应用在前台还是后台)的事件,用法示例:
OneSignal.Notifications.addClickListener((event) { // 获取通知点击相关信息,对应原OSNotificationOpenedResult的内容 final notification = event.notification; print('OneSignal: notification opened: ${notification.jsonRepresentation()}'); // 在此添加跳转指定页面的逻辑,比如使用Navigator // Navigator.push(context, MaterialPageRoute(builder: (context) => TargetPage())); });
- 补充说明:如果需要区分通知是从后台唤醒应用还是前台直接点击,可通过
notification.additionalData或结合应用生命周期状态判断,核心逻辑都可以在这个点击监听器中实现。
内容的提问来源于stack exchange,提问作者Farid Ahmadov
相关产品推荐
相关产品推荐

