云消息传递处理终止应用

时间:2016-05-19 20:15:12

标签: ios swift firebase apple-push-notifications

我有一个应用程序,用于在NSUserDefaults中存储用户的会话。当应用程序被强制关闭时,在初始验证数据控制器是否有用户会话,以防万一将其发送到启动窗口,如下所示:

override func viewWillAppear(animated: Bool) {

    self.view.hidden = true

    let defaults = NSUserDefaults.standardUserDefaults()
    if   defaults.stringForKey("user") != nil
    {

        dispatch_async(dispatch_get_main_queue(), { () -> Void in
            let viewController:UIViewController = self.storyboard?.instantiateViewControllerWithIdentifier("vistaInicio") as! ViewControllerInicio
            self.presentViewController(viewController, animated: true, completion: nil)
        })


    }else
    {
    self.view.hidden = false

    }

}

直到今天,我决定在本教程 Setting up a Firebase Cloud Messaging Client App on iOS之后实施更新firebase的推送通知,这一直顺利进行。当他杀死应用程序并再次输入时出现问题,提供以下错误代码:

 2016-05-19 16:05:27.647: <FIRInstanceID/WARNING> Failed to fetch APNS token Error Domain=com.firebase.iid Code=1001 "(full)"
 2016-05-19 16:05:27.659: <FIRMessaging/INFO> FIRMessaging library version 1.1.0
 2016-05-19 16:05:27.831: <FIRMessaging/WARNING> FIRMessaging registration is not ready with auth credentials
Unable to connect with FCM. Optional(Error Domain=com.google.fcm Code=501 "(null)")

Screenshot

4 个答案:

答案 0 :(得分:35)

这是解决方案,

首先在Firebase控制台中上传必要的证书然后在您的应用中启用推送通知和后台模式 - &gt;远程通知

之后在App Delegate中使用下面的代码(我指定了棘手的行):

rezultat.setText(sb.toString());

答案 1 :(得分:5)

不要忘记AppDelegate:

FirebaseAppDelegateProxyEnabled = NO

请确保 Info.plist print(...)

我暂时不知道,但我在didReceiveRemoteNotification中获得了func tokenRefreshNotificaiton,但没有得到弹出窗口。我从 Firebase发送消息 - &gt;控制台 - &gt;通知 - &gt;单个设备并在此复制我从Xcode控制台获得的令牌 - &gt; cdf <- pnorm BINS <- 10 MINZ <- (-5) MAXZ <- 5 cdftbl <- rep(NA, BINS+2) xi <- 0; SSZ <- (MAXZ-MINZ)/BINS while (xi<=BINS+2) { x <- MINZ+xi*SSZ cdftbl[xi+1] <- pnorm(x, log=TRUE) xi <- xi+1 } fastlogcdf <- function( x, m=0, sd=1 ) { z <- (x-m)/sd zi <- (z-MINZ)/(MAXZ-MINZ) * BINS zi.whole <- as.integer(zi) zi.frac <- zi-zi.whole zi.index <- zi.whole+1 zi.tindex <- pmax(1,zi.index) ## will not throw an array index error! ifelse( (zi.index <= 0) | ((zi.index+1) >= BINS), pnorm(x,m,sd,log=TRUE), cdftbl[ zi.index ]+zi.frac*(cdftbl[ zi.index+1 ]-cdftbl[ zi.index ])) }

答案 2 :(得分:4)

答案是正确的,这些是步骤,但也请检查您的设备时间。因为如果你的时间和日期太过分了,那就不行了

答案 3 :(得分:2)

在让tripple检查整个集成之后,对我来说问题是测试设备的日期已提前一周更改。 可能FCM SDK会进行一些基于日期的检查。

Firebase方面的错误可能不那么通用,因为我失去了差不多一天寻找解决方案。希望这会有所帮助。