我正在开发一个聊天应用程序,我需要知道何时收到推送通知以使用新消息重新加载对话 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/