如何在 iOS(Swift 3)上断开 Firebase 通知?

Posted

技术标签:

【中文标题】如何在 iOS(Swift 3)上断开 Firebase 通知?【英文标题】:How to disconnect Firebase Notifications on iOS (Swift 3)? 【发布时间】:2017-06-26 09:01:50 【问题描述】:

我正在开发一个带有 Firebase 通知的应用程序。我已经在 AppDelegate 中配置了它,它们运行良好。

问题:我有一个带开关的设置视图,用于打开/关闭通知,但我不知道如何禁用通知。我试过了,但没有用:

@IBAction func changeSwitch(_ sender: Any) 
    if mySwitch.isOn 
        print("NOTIFICATIONS ON")

        connectToFcm()

     else 
        print("NOTIFICATIONS OFF")

        FIRMessaging.messaging().disconnect()
    


func connectToFcm() 
    FIRMessaging.messaging().connect  (error) in
        if (error != nil) 
            print("Unable to connect with FCM. \(error)")
         else 
            print("Connected to FCM.")
        
    

也许你可以帮助我。

谢谢!

【问题讨论】:

【参考方案1】:

可以像这样从设备本身禁用/启用通知:

    func switchChanged(sender: UISwitch!) 
    print("Switch value is \(sender.isOn)")

    if(sender.isOn)
        UIApplication.shared.registerForRemoteNotifications()
    
    else
        UIApplication.shared.unregisterForRemoteNotifications()
    

【讨论】:

谢谢希瓦姆·特里帕蒂。你救了我的一天。非常感谢。 我也无法正常工作,即使使用 unregisterForRemoteNotifications,fcm 仍然可以发送【参考方案2】:

最简单快捷的方法是在关闭通知时从后端数据库中删除设备令牌

【讨论】:

Akash,在安卓设备上也是一样的吗?我可以在 android 中删除令牌吗?

以上是关于如何在 iOS(Swift 3)上断开 Firebase 通知?的主要内容,如果未能解决你的问题,请参考以下文章

进入后台状态ios swift时防止websocket连接断开

如何在socket.io中的断开事件上获取断开连接的客户端的套接字ID

如何在 android 上检查 socket.io 连接或断开连接?

如何使用 iOS Core 蓝牙在 BLE 上完全断开连接

IOS - 如何应用恒定速度 - Swift 3

Firebase 与 Swift