You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter+OneSignal动态调整通知渠道优先级失效问题排查

问题原因及解决方法

问题原因

  • 你通过flutterLocalNotificationsPlugin动态修改通知渠道优先级,但OneSignal后台选择「Created in App」渠道发送通知时,只会读取该渠道在OneSignal后台存储的初始配置优先级(而非App内动态修改后的),如果这个初始优先级是默认级别,后台收到通知就不会显示横幅。
  • 手动设置高优先级能正常显示,是因为手动指定的优先级会直接覆盖渠道的默认配置,不受渠道原有设置的限制。

解决方法

  • 放弃App内动态修改渠道优先级的方式,改用OneSignal的通知拦截逻辑配合生命周期:
    • 监听didChangeAppLifecycleState,在App前台时,用OneSignal.setNotificationWillShowInForegroundHandler拦截通知,设置不显示横幅;后台时不做拦截,让通知按高优先级正常弹出横幅。
  • 在OneSignal后台把「sound」渠道的默认优先级设为高,然后在App前台收到通知时,通过flutterLocalNotificationsPlugin的回调隐藏横幅,后台则保持系统默认的高优先级显示。
  • 切换到OneSignal后台创建的渠道,直接在后台管控渠道的优先级配置,再结合App内的生命周期逻辑调整通知的显示行为,避免「Created in App」渠道的配置不同步问题。

内容的提问来源于stack exchange,提问作者Suthura Sudharaka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 23:53:14