ios - 如果用户禁用它们,如何发送静默推送通知?

标签 ios swift notifications push-notification

我正在开发一个聊天应用程序,我需要知道何时收到推送通知以使用新消息重新加载对话 View 。如果用户允许应用程序向他的设备发送推送通知(使用通知对话框),它会很好地工作。但是,如果他在此对话框中点击“否”,则不会执行以下将用户设备 token 注册到我的数据库的代码:

func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {

    // Update the OneSignal id for this current installation
    oneSignal!.IdsAvailable({ (userId, pushToken) in
        if (userId != nil) {

            let installation = PFInstallation.currentInstallation()
            installation.setDeviceTokenFromData(deviceToken)
            installation.setValue(userId, forKey: "oneSignalId")
            installation.saveInBackground()

        }
    })

}

那么,如何获取用户设备 token ,如果他在通知对话框中点击“否”,那么我仍然可以针对他发送静默推送通知?

谢谢!

最佳答案

实际上可以做到,但不能使用 OneSignal。

Apple 推送通知确实支持在后台推送,这意味着即使用户不授予通知访问权限,当他收到通知时,它也不会显示在他的屏幕上。 对于 OneSignal,问题是系统不会向禁用推送通知的用户发送推送。这意味着您的通知永远不会到达您的应用程序,因为它永远不会通过 Apple 推送服务发送。

我建议您为此使用其他供应商(顺便说一句,它与 Parse-Server 一起工作)。

如果你想在后台获取数据而不是使用推送,我建议你使用“后台获取”,这会不时唤醒你的应用程序并让你运行一些代码来检查是否有任何新内容。

关于ios - 如果用户禁用它们,如何发送静默推送通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36250931/

相关文章:

ios - 使用 Braintree 支付流程的客户端 IOS 到服务器

ios - WKWebView中如何实现 "Are you sure you want to submit the form again"

ios - swift UIGraphicsGetImageFromCurrentImageContext 无法释放内存

ios - 调用通知时 BAD_ACCESS

ios - Coreplot iOS-图形栏之间的自定义空间

ios - iOS 上使用 Memory Monitor 时虚拟内存消耗和实际内存的区别

ios - 我怎样才能得到键盘的高度?

ios - 28 个项目的数组不起作用。编译器没有任何反应

ios - 为什么 iOS 模拟器上不会触发通知?

actionscript-3 - Adobe Air (AS3) 可以直接使用 socket.io 吗?