是否存在可返回App页面状态的OneSignal API以判断是否推送消息通知
OneSignal 相关能力及实现方案
OneSignal 本身没有提供可以直接返回 App 内部是否处于特定页面(你的消息接收页面)状态的API,页面状态属于你的应用内部业务状态,需要你自行维护后结合 OneSignal 的标签能力实现对应需求,具体可按以下流程实现:
- 在应用内维护全局布尔状态
isInMessagePage:进入消息页面时赋值为true,离开消息页面(包括跳转其他页面、应用切后台、销毁页面)时赋值为false - 状态变更时调用 OneSignal 提供的用户标签接口同步状态到 OneSignal 服务端,示例代码逻辑如下:
// Android 端示例,iOS/Flutter等端对应调用同名setTag/addTag接口即可 // 进入消息页时更新标签 OneSignal.getUser().addTag("is_in_message_page", "true"); // 离开消息页时更新标签 OneSignal.getUser().addTag("is_in_message_page", "false"); - 推送阶段可通过两种方式匹配状态下发对应内容:
- 服务端先调用 OneSignal 接口获取对应用户的
is_in_message_page标签值,判断用户当前在消息页则直接走应用内实时消息通道下发,不在消息页则调用 OneSignal 推送带完整内容的通知 - 直接使用 OneSignal 的 Segments 分段推送能力,给
is_in_message_page = true的用户推静默通知触发应用内消息更新,给is_in_message_page = false的用户推带完整内容的可见通知
- 服务端先调用 OneSignal 接口获取对应用户的
内容的提问来源于stack exchange,提问作者Malek bkh
相关产品推荐
相关产品推荐

