Back4App iOS端ParseSwift SDK 2.0如何从客户端发送频道推送通知
Parse Swift SDK 2.3.1 频道推送实现方案
一、频道订阅与推送原生实现(替代旧版频道API)
Parse Swift SDK 2.3.1并非不支持频道推送功能,只是移除了旧版本中封装好的subscribeToChannel这类语法糖API,底层逻辑依然和旧版、Android端实现完全对齐,本质都是通过读写Installation表的channels字段实现频道管理,实现方案如下:
频道订阅实现
// 订阅指定频道 guard let installation = PFInstallation.current() else { return } let targetChannel = "你的频道名称" // 避免重复添加同一频道 if !installation.channels.contains(targetChannel) { installation.channels.append(targetChannel) installation.saveInBackground { success, error in if success { // 订阅成功逻辑 } else { // 错误处理逻辑 } } }
取消频道订阅实现
// 取消订阅指定频道 guard let installation = PFInstallation.current() else { return } let targetChannel = "你的频道名称" installation.channels.removeAll { $0 == targetChannel } installation.saveInBackground { success, error in // 结果处理逻辑 }
客户端触发频道推送实现
// 向指定频道发送推送 let pushQuery = PFInstallation.query() // 筛选所有订阅了目标频道的设备 pushQuery?.whereKey("channels", equalTo: "你的频道名称") let push = PFPush() push.query = pushQuery push.setMessage("推送展示内容") // 可选:添加自定义传参 push.setData(["custom_param": "自定义值"]) push.sendInBackground { success, error in // 发送结果处理逻辑 }
前置配置说明
- iOS端需要先请求用户推送授权,注册远程通知获取
deviceToken后,赋值给PFInstallation.current()?.deviceToken再保存,否则无法接收推送 - Back4App后台需要开启客户端推送权限,同时保证
Installation表的channels字段对客户端开放读写权限
二、关于混用旧版SDK的说明
不建议仅针对推送功能混用1.8.1版本旧SDK,新旧版本存在类定义冲突、Swift语法版本不兼容、依赖库版本冲突等问题,且旧版SDK已停止维护存在安全隐患。上述原生实现逻辑和旧版API完全对齐,和Android端的频道实现也完全互通,无需额外适配后端配置。
内容的提问来源于stack exchange,提问作者kk94
相关产品推荐
相关产品推荐

