【问题标题】:Ionic framework don't save token离子框架不保存令牌
【发布时间】:2015-08-25 10:36:30
【问题描述】:

Ionic framework 有问题。我按照指南接收和发送推送通知,但有些东西不起作用。

当我启动应用程序时,我按下按钮识别,并显示我的用户 ID 提醒。之后,我按下注册按钮,手机会显示一个包含设备令牌(ANDROID)的警报。但是当我转到 ionic.io 时,在我的应用程序的仪表板中,没有设备令牌。

如果我的仪表板上没有保存令牌,我将无法发送推送通知。 谁能帮帮我?

这是我的controller.js:

angular.module('starter.controllers', [])

.controller('DashCtrl', function($scope, $rootScope, $ionicUser, $ionicPush) {

 // Identifies a user with the Ionic User service
  $scope.identifyUser = function() {
    console.log('Ionic User: Identifying with Ionic User service');

    var user = $ionicUser.get();
    if(!user.user_id) {
      // Set your user_id here, or generate a random one.
      user.user_id = $ionicUser.generateGUID();
    };

    // Add some metadata to your user object.
    angular.extend(user, {
      name: 'Ionitron',
      bio: 'I come from planet Ion'
    });

    // Identify your user with the Ionic User Service
    $ionicUser.identify(user).then(function(){
      $scope.identified = true;
      alert('Identified user ' + user.name + '\n ID ' + user.user_id);
    });
  };  

  $rootScope.$on('$cordovaPush:tokenReceived', function(event, data) {
  console.log('Got token', data.token, data.platform);
  // Do something with the token
});

    // Registers a device for push notifications and stores its token
  $scope.pushRegister = function() {

    console.log('Ionic Push: Registering user');

    // Register with the Ionic Push service.  All parameters are optional.
    $ionicPush.register({
      canShowAlert: true, //Can pushes show an alert on your screen?
      canSetBadge: true, //Can pushes update app icon badges?
      canPlaySound: true, //Can notifications play a sound?
      canRunActionsOnWake: true, //Can run actions outside the app,
      onNotification: function(notification) {
        // Handle new push notifications here
        // console.log(notification);
        return true;
      }
    });
  };

  // Handles incoming device tokens
  $rootScope.$on('$cordovaPush:tokenReceived', function(event, data) {
    alert("Successfully registered token " + data.token);
    console.log('Ionic Push: Got token ', data.token, data.platform);
    $scope.token = data.token;
  });

})



.controller('ChatsCtrl', function($scope, Chats) {
  // With the new view caching in Ionic, Controllers are only called
  // when they are recreated or on app start, instead of every page change.
  // To listen for when this page is active (for example, to refresh data),
  // listen for the $ionicView.enter event:
  //
  //$scope.$on('$ionicView.enter', function(e) {
  //});

  $scope.chats = Chats.all();
  $scope.remove = function(chat) {
    Chats.remove(chat);
  };
})

.controller('ChatDetailCtrl', function($scope, $stateParams, Chats) {
  $scope.chat = Chats.get($stateParams.chatId);
})

.controller('AccountCtrl', function($scope) {
  $scope.settings = {
    enableFriends: true
  };
});

我按照离子指南一步一步来

【问题讨论】:

  • 我遇到了同样的问题..
  • 我使用 PARSE 解决了问题

标签: android ionic devicetoken


【解决方案1】:

为了访问 ionic.io 上的令牌,您必须将其推送:

var push = new Ionic.Push();
var user = Ionic.User.current();

var callback = function(pushToken) {
  console.log('Registered token:', pushToken.token);
  user.addPushToken(pushToken);
  user.save(); // you NEED to call a save after you add the token
}

push.register(callback);

docs中所述。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-19
    • 2016-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-17
    • 1970-01-01
    • 2015-10-14
    相关资源
    最近更新 更多