吐槽下腾讯云即时通信离线推送(iOS)

2023-08-04 11:45:59 +08:00
 fancymf
集成了最新的离线即时推送 sdk ,然后发现判断刘海屏的判断错了。原来 sdk 内把 系统 appDelegate 给替换了。晕。想去开发集成群问问官方人员怎么办,他们大概率不知道这个替换了,说只是 hook 了代理方法,没替换。后面私信来问我了,我把相应代码贴了,还在口硬,说你看下就知道了,自己看下代码就知道了。我也知道我看代码知道,但我都没时间啊,赶着上线才用你们集成聊天功能啊天。早上的时间都浪费了,心情也糟了。
1046 次点击
所在节点    程序员
2 条回复
elechi
2023-08-04 14:10:40 +08:00
技术人员都嘴硬
liyoujia1988
2023-08-07 20:08:00 +08:00
您好,关于您反馈的问题,解答如下:

TUIOfflinePush 开源组件,是为了方便离线推送的接入而开发的。

为了获取到比较丰富的系统回调,TUIOfflinePush 会接管 APP 层自有的 AppDelegate ,并将 UIApplication 的 delegate 替换成自己,也即 TUIOfflinePush 会在中间做透明转发,让 APP 上层无感知。

因为以下几个方面的原因,TUIOfflinePush 还暂时不支持 swift 的接入,接下来会陆续在 swift 上做友好支持。
1 )这里利用了比较多的动态特性,上层业务在使用 UIApplication.shared.delegate 的时候,无法直接 as AppDelegate ,从而会影响 swift 环境下 AppDelegate 的获取
2) 为了方便配置证书 ID ,提供了比较多的宏定义,这里 swift 暂时还不支持

目前由于 APNs 离线推送本身的集成并不困难,swift 的集成可以参考 TUIOfflinePushManager+APNS 文件,自己申请 token 和 上报 token 。

另外,TUIOfflinePush 内部监听了 TUICore 组件中的 TUILogin 登录事件,初衷是简化集成。这也是为什么 TUIOfflinePush 仅仅 pod 进工程而不调用就接管系统回调的原因。

如果您是 swift 环境,直接在 podfile 中移除掉 TUIOfflinePush 即可。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/962359

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX