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
相关产品推荐
相关产品推荐

