iOS

时间:2016-03-11 00:15:29

标签: ios swift parse-platform notifications urbanairship.com

我正在开发一个推送 通知 已启用的应用。我的应用程序从第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
    }
}

我希望有人可以帮助我,当我在我的开发环境中进行测试时,一切正常,现在它完全不知道为什么它会失败。

0 个答案:

没有答案