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

使用Airship推送:如何禁用应用内通知并保留通知中心通知?

解决Airship禁用应用内通知但保留通知中心推送的问题

你遇到的问题在于PrivacyManager.FEATURE_IN_APP_AUTOMATION的作用范围并不覆盖所有应用内通知场景——这个开关仅控制自动化触发的应用内流程(比如基于用户行为、事件自动弹出的应用内消息),而非所有类型的应用内消息展示。要完全禁用应用内通知同时保留系统通知中心的推送,需要直接控制Airship的应用内消息模块:

正确实现方式

1. 全局禁用所有应用内消息

直接关闭Airship应用内消息模块的总开关,这样所有应用内消息(无论自动还是手动触发)都不会展示,而推送通知会正常进入系统通知中心:

Kotlin代码:

// 确保在Airship初始化完成后调用,比如在onAirshipReady回调中
UAirship.shared().inAppMessaging.isEnabled = false

Java代码:

// 初始化完成后执行
UAirship.shared().getInAppMessaging().setEnabled(false);

2. 仅禁用自动展示的应用内消息(保留手动触发能力)

如果需要保留手动触发应用内消息的能力,只是不想让系统自动弹出,可以通过设置展示权限代理来拦截自动展示请求:

Kotlin代码:

UAirship.shared().inAppMessaging.setDisplayPermissionDelegate { message, _ ->
    // 返回false阻止自动展示,手动触发时可忽略此代理
    false
}

注意事项

  • 确保这些设置在Airship初始化完成后执行,比如放在Airship.onReadyCallback中,避免因实例未初始化导致设置无效。
  • 检查airshipconfig.properties配置文件,若其中in_app_messaging_enabled被设为true,代码中的设置依然会覆盖配置值,但建议保持配置与代码逻辑一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 14:17:47