2016-07-05 57 views
1

我想在我的應用程序中向用戶添加推送令牌。我有推送令牌,我有用戶,但我無法將令牌添加到用戶。我如何將推送令牌添加到此用戶?離子用戶令牌

下面是代碼:

var io = Ionic.io(); 

username = localStorage.getItem('username'); 

var signupSuccess = function(user) { 
    // The user was authenticated; you can get the authenticated user 

    console.log(user); 
}; 

var signupFailure = function(errors) { 
    for (var err in errors) { 
    // Check the error and provide an appropriate message 
    // for your application. 
    user = Ionic.User.current(); 
    } 
}; 
var details = { 

    'email': '[email protected]', 
    'password': 'pass2', 
    'username': 'username' 
} 


Ionic.Auth.signup(details).then(signupSuccess, signupFailure); 

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

var callback = function(pushToken) { 

    alert('TOKEN: ' + pushToken.token); 

    user.addPushToken(pushToken); 

    user.save(); // You NEED to call a save after you add the token 
} 

push.register(callback); 

回答

0

我可以建議一兩件事。您可以要求後端或服務器在數據庫中添加用戶令牌或其他組件。

您可以手動添加下面的事情,如果它是一個JSON對象:

user["token"]=value 
0

它不再user.addPushToken(pushToken);

相反,你需要:

push.register(function(token) { 
    push.saveToken(token); 
}); 

這將自動添加令牌到當前登錄的離子用戶。

看到這個example from Ionic documentation

注:如您要添加這個在用戶正在登錄的時候,你還需要添加上面的代碼註冊推你$ionicPlatform.ready函數中:

$ionicPlatform.ready(function() { 
    var push = new Ionic.Push(); 
    push.register(function(token) { 
     push.saveToken(token); 
    }); 
}); 

或者更可能的是,創建一個函數來註冊推這是從$ ionicPlatform.ready中,也從你的註冊/登錄功能中調用。

否則,如果Push尚未在$ionicPlatform.ready中註冊,則在註冊/登錄後您調用push.saveToken時,它不會將令牌添加到您的用戶。