我想在Android上使用ionic实现推送通知。
我在devdactic Devdactic push notifications android 的教程中遵循了Ionic push的文档。我在平台中看到的示例中保存了一个令牌。
我已经完成了我需要的所有设置,包括GCM服务和注册用户到离子平台,但没有注册令牌。
我在模拟器中运行app并注册了用户但没有保存令牌。在一些修改器之后,我在控制台中收到一个令牌但是不行。
在示例中,令牌是不同的,推送不起作用。有人根据上一份文档有一个Ionic Push的工作示例吗?
答案 0 :(得分:1)
这是我用来注册推送的东西,它很乱,但希望可以有用。它会检查当前用户是否已通过身份验证,如果他们不是,则使用UUID(我使用UUID生成器插件)对其进行签名并保存令牌。只需确保您的应用程序已设置为Ionic.io,这应该有效:)
var user = Ionic.User.current();
if (user.isAuthenticated()) {
var push = new Ionic.Push({
"debug": true,
"onNotification": function (notification) {
},
"onRegister": function (data) {
console.log(data.token);
return true;
},
"pluginConfig": {
"android": {
"icon": "icon"
},
"ios": {
"badge": true,
"sound": true,
"alert": true
}
}
});
} else {
var uid = uuid2.newuuid();
var details = {
'email': uid + '@example.com',
'password': 'secretpassword'
};
Ionic.Auth.signup(details).then(function () {
var options = { 'remember': true };
Ionic.Auth.login('basic', options, details).then(function () {
user = Ionic.User.current();
user.set('uid', uid);
user.save();
var push = new Ionic.Push({
"debug": true,
"onNotification": function (notification) {
},
"onRegister": function (data) {
console.log(data.token);
return true;
},
"pluginConfig": {
"android": {
"icon": "icon"
},
"ios": {
"badge": true,
"sound": true,
"alert": true
}
}
});
push.register(function (token) {
console.log("Device token:", token.token);
push.saveToken(token);
});
}, function () { });
}, function () { });
}
答案 1 :(得分:0)
要发送推送通知,您需要Api密钥和项目编号以及当前设备ID。
我认为您在获取用户设备ID方面遇到了困难,以便获取当前的设备ID,请重新ng-Cordova
你可以找到一行
$rootScope.$on('$cordovaPush:notificationReceived', function(event, notification)
在此您可以看到通知参数,它是该对象中的一个对象,您可以找到regid
字段,因为您可以获取当前的设备ID,这仅适用于移动设备不在浏览器上。
因此,为了使用该设备ID,例如,假设您要发布一个带有潜水ID的登录表单,如下所示。
$rootScope.$on('$cordovaPush:notificationReceived', function(event, notification) {
console.log(event);
console.log(notification);
switch(notification.event) {
case 'registered':
console.log(notification.regid.length);
if (notification.regid.length > 0 ) {
// alert('registration ID = ' + notification.regid);
console.log('registration ID = ' + notification.regid);
var loginPost = {
"UserName":username,
"PassWord":password,
"DeviceID":notification.regid
};
console.log(loginPost);