为 Ionic.io 推送识别用户/生成令牌

Identify users / generate token for Ionic.io Push

我有一个继承的 Ionic 框架应用程序正在使用 Ionic.io 该应用针对我们的 API 进行授权,并获得了一个 API 令牌以供将来请求使用。

我正在尝试处理推送通知 - 我已经设置了离子推送,并且可以毫无问题地向所有用户触发推送通知。

我想要针对特定​​用户/设备发送通知的功能,我知道为此,我必须注册设备以生成令牌。

在我的 $ionicPlatform.ready 函数中,我有:

$ionicPush.register().then(function(t) {
    return $ionicPush.saveToken(t);
}).then(function(t) {
  console.log('Token saved:', t.token);
});

然而,这似乎并没有返回令牌,而是调用

console.log($ionicPush); 显示未设置令牌。

有什么想法吗?我错过了什么?

所以在翻阅了一些文档之后,我发现问题与 ionic 用户有关。

在主运行函数中,我触发了一个

 if ($ionicAuth.isAuthenticated()) {

如果失败,我会尝试登录用户,并在适当时进行用户注册。 (用户已经使用针对我们的 api 的自定义身份验证令牌登录)

在我尝试注册令牌之前,我必须重新加载用户才能让应用程序保存并推送回 ionic.io。

 $ionicUser.load().then(function() {
    $ionicPush.register().then(function(t) {
        console.log('Token sent:', t.token);
        return $ionicPush.saveToken(t);
    }).then(function(t) {
      console.log('Token saved:', t.token);
    });
});