在我们的应用程序中,我们使用PushKit接收VoIP通知。
当用户注销时,我们不希望收到任何PushKit通知。当用户注销时,我们在我们的服务器上注销设备令牌,但是如果用户注销时没有互联网连接,那么注销设备令牌的请求将失败(并且我们允许用户注销)。
这就是当用户注销(以及从服务器注销)时调用unregisterForRemoteNotifications()的原因。
然而,我们注意到,如果从服务器注销令牌的请求失败,即使我们调用了unregisterForRemoteNotifications() (并且我们已经确认isRegisteredForRemoteNotifications返回false),我们仍然会收到PushKit通知。
当我们收到通知时,我们会检查用户是否已经登录,如果没有,我们就会悄悄地丢弃通知。
但是,我们担心丢弃这些通知会出现以下iOS 13+ crash Killing app because it never posted an incoming call to the system after receiving a PushKit VoIP push callback.
告知系统丢弃这些通知或根本不将这些通知转发到我们的应用程序的推荐方式是什么?
谢谢你,科斯敏
发布于 2020-12-09 02:58:25
使用这个
func stopVoIPPush() {
voipRegistry?.desiredPushTypes = []
voipRegistry?.delegate = nil
// voipRegistry = nil
}应该注销你的PushKit。我用了这个,它起作用了。
https://stackoverflow.com/questions/64460164
复制相似问题