我正在开发一个推送 通知 已启用的应用。我的应用程序从第1天开始使用推送通知,其中 parse.com 作为服务器。
一切都正常工作 很好,我做了几次应用更新和改进,我总是收到服务器发送的每次推送的一个通知,我也从解析1.7.2到1.12.0没有问题。
由于parse.com将终止其服务,我开始从解析迁移到 Urban Airship(使用7.0.2)。
我做了几次测试,在手机上安装和卸载应用程序,安装生产版本(使用解析)并安装开发版本(使用城市飞艇),一切都运行正常,当突然时我不知道为什么,我开始接收5次通知每次服务器发送的推送。我认为这是一个 parse.com 问题,因为那时我的 iPhone 正在运行生产版本(带解析),但它不是
当(使用Urban Airship)版本刚刚发布时,我一直收到5封通知。
我完全迷失在这里,我不知道为什么会发生这种情况,起初我认为它与应用程序的几个安装和卸载有关,所以我尝试:
1. Disabling notifications.-
2. Deleting the app.-
3. Disabling notifications
3.a. deleting the app
3.b. then changing time and date ahead a couple of days
3.c. then turning off the phone
3.d. turning on again and putting the right date
3.e. restarting the phone
3.f. installing the app
到目前为止,这些都没有。我无法在网上找到任何明确或解决此问题的问题。
我希望有人可以帮助我。
额外信息:
Swift 2
iOS 8.0+
XCode 7
Pushes are sent by a PHP Server
我的AppDelegate.swift (请注意我只包含相关代码,其余代码无关):
import UIKit
import CoreData
import AirshipKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
let config: UAConfig = UAConfig.defaultConfig()
UAirship.takeOff(config)
UAirship.push().userPushNotificationsEnabled = true
UAirship.push().resetBadge()
// Get the user settings
let userSettings = NSUserDefaults.standardUserDefaults()
var notify = userSettings.dictionaryForKey("notifications")
let appReset = userSettings.objectForKey("appResetv200")
if appReset == nil {
notify = nil
userSettings.setObject("done", forKey: "appResetv200")
}
if notify == nil {
let notificationTypes = [
"notType1" : true,
"notType2" : true,
"notType3" : true
]
userSettings.setObject(notificationTypes, forKey: "notifications")
UAirship.push().addTag("notType1")
UAirship.push().addTag("notType2")
UAirship.push().addTag("notType3")
UAirship.push().updateRegistration()
}
return true
}
}
我希望有人可以帮助我,当我在我的开发环境中进行测试时,一切正常,现在它完全不知道为什么它会失败。