如何在GCM for iOS中正确调用refreshToken?

时间:2016-03-31 14:30:37

标签: ios swift google-cloud-messaging

我已将我的应用程序与GCM集成,它在商店中,并且工作正常。现在我想刷新注册令牌并将新令牌发送到我的服务器。

GCM提供了一种名为refreshToken的方法:

func onTokenRefresh() {
  GGLInstanceID.sharedInstance().tokenWithAuthorizedEntity(gcmSenderID, scope: kGGLInstanceIDScopeGCM, options: registrationOptions, handler: registrationHandler)   
}

我从ApplicationBecomeActive调用了此方法。这称为方法:

func registrationHandler(registrationToken: String!, error: NSError!) {
  if (registrationToken != nil) {
  } else {
    print("Registration to GCM failed with error: \(error.localizedDescription)")
    let userInfo = ["error": error.localizedDescription]
    NSNotificationCenter.defaultCenter().postNotificationName(self.registrationKey, object: nil, userInfo: userInfo)
  }
}

但我没有得到registrationToken。每次都说:

  

向GCM注册失败,错误"向GCM注册失败   错误:无法完成操作。 (com.google.iid错误   。1001)"

这里出了什么问题?

1 个答案:

答案 0 :(得分:0)

如上所述here,为了刷新注册令牌,GGLInstanceIDDelegate协议声明了一个onTokenRefresh方法,该方法在系统确定需要刷新令牌时被调用。

向GCM注册失败并显示错误“注册到GCM失败并显示错误:操作无法完成。(com.google.iid错误1001。)”错误在您的服务器处于在HTTP(s)代码放弃之前加载并且不响应请求。听起来你有一个配置问题需要解决。

检查GitHub issue