You need to enable JavaScript to run this app. Flutter集成OneSignal报错:找不到作用域内的OSHandleNotificationActionBlock类型
优惠活动
大模型
产品
解决方案
定价
更多

Flutter集成OneSignal报错:找不到作用域内的OSHandleNotificationActionBlock类型

问题原因及解决方案
  • 版本API不匹配
    OSHandleNotificationActionBlock是OneSignal iOS SDK 3.x及更早版本的专属类型,4.x之后该类型已被废弃移除,对应的通知动作处理回调替换为OSNotificationClickHandler。你可以先检查当前项目依赖的onesignal_flutter版本,若使用4.x及以上版本,旧类型自然无法被识别。

  • 缺失模块导入
    请在编写该代码的Swift文件头部,补充OneSignal模块导入语句:
    import OneSignal
    如果是Notification Service Extension单独的target,还需要确认Extension的Podfile中已经添加OneSignal依赖,仅主项目添加依赖会导致Extension中无法找到对应类型:

target '你的Notification Service Extension名称' do
  use_frameworks!
  pod 'OneSignalXCFramework', '>= 3.0.0', '< 6.0.0'
end

添加后执行pod install重新安装依赖。

  • 适配版本的正确写法
    若使用4.x及以上版本的OneSignal SDK,将代码替换为新API写法即可:
let notificationOpenedBlock: OSNotificationClickHandler = { result in
    if let actionID = result?.action.actionId {
        print("actionID =", actionID)
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 00:15:02