Cordova - 在收到通知后在后台更改 Android 设备上的徽章编号
Cordova - changing badge number on Android devices in the background, when notification has been received
我有一个 joomla 后端,我已经实现了 jBackEnd 插件来为我的应用程序提供 REST 数据。但这不是重点。 jBackEnd 还支持 GCM 和 APN 通知,每次添加新文章时,我都会用它向我的 cordova 应用程序用户(仅 android)发送通知。
问题是 - 我已经尝试了一切,通知工作 - 使用 cordova 的 pushplugin,phone 振动,声音在那里,基本上通知工作。但是,当应用程序在后台时,我无法更新徽章编号,因为没有触发通知事件。
据我所知,我无法在后台 运行 javascript 代码(除非我使用了一个插件,该插件在按下主页按钮时禁用应用程序的睡眠 - 我已经尝试过了,但它仍然是不工作),这是有道理的 - 毕竟它是一个网络视图。但是,如果我无法收听 on notification 事件,该怎么办?
我在网上找到的答案没有帮助。任何建议将不胜感激。谢谢。
下面的代码可以在 运行 函数 (angular) 内的 $ionicPlatform.ready(function () {
块中找到。
var push = PushNotification.init({
"android": {
"senderID": "36070516254",
},
"ios": {
"alert": "true",
"badge": "true",
"sound": "true"
}
});
push.on('registration', function(data) {
var device_token = data.registrationId;
GcmService.registerClient(device_token, function(data) {
console.info('Registered !', data);
// # Start the scheduler
}, function(status) {
console.error('After registering with the joomla thing !');
});
});
push.on('notification', function(data) {
console.info('!!! Information received : ', data);
try {
push.setApplicationIconBadgeNumber(function(s) {
console.info('Badge success', s);
}, function(error) {
console.error(error);
}, badgeCounter++);
} catch(e) {
console.error(e);
}
});
如果您安装了最新版本的推送插件 (https://github.com/phonegap/phonegap-plugin-push) 并将数据数组中的参数(服务器端)"badge" 发送到 GCM,徽章将是通知更新。
您还需要在您的应用中将徽章参数设置为 true:
push = PushNotification.init
({android: {
senderID: "xxxxxxxx",
badge: "true"
});
至少对我有用。
我有一个 joomla 后端,我已经实现了 jBackEnd 插件来为我的应用程序提供 REST 数据。但这不是重点。 jBackEnd 还支持 GCM 和 APN 通知,每次添加新文章时,我都会用它向我的 cordova 应用程序用户(仅 android)发送通知。
问题是 - 我已经尝试了一切,通知工作 - 使用 cordova 的 pushplugin,phone 振动,声音在那里,基本上通知工作。但是,当应用程序在后台时,我无法更新徽章编号,因为没有触发通知事件。
据我所知,我无法在后台 运行 javascript 代码(除非我使用了一个插件,该插件在按下主页按钮时禁用应用程序的睡眠 - 我已经尝试过了,但它仍然是不工作),这是有道理的 - 毕竟它是一个网络视图。但是,如果我无法收听 on notification 事件,该怎么办?
我在网上找到的答案没有帮助。任何建议将不胜感激。谢谢。
下面的代码可以在 运行 函数 (angular) 内的 $ionicPlatform.ready(function () {
块中找到。
var push = PushNotification.init({
"android": {
"senderID": "36070516254",
},
"ios": {
"alert": "true",
"badge": "true",
"sound": "true"
}
});
push.on('registration', function(data) {
var device_token = data.registrationId;
GcmService.registerClient(device_token, function(data) {
console.info('Registered !', data);
// # Start the scheduler
}, function(status) {
console.error('After registering with the joomla thing !');
});
});
push.on('notification', function(data) {
console.info('!!! Information received : ', data);
try {
push.setApplicationIconBadgeNumber(function(s) {
console.info('Badge success', s);
}, function(error) {
console.error(error);
}, badgeCounter++);
} catch(e) {
console.error(e);
}
});
如果您安装了最新版本的推送插件 (https://github.com/phonegap/phonegap-plugin-push) 并将数据数组中的参数(服务器端)"badge" 发送到 GCM,徽章将是通知更新。
您还需要在您的应用中将徽章参数设置为 true:
push = PushNotification.init
({android: {
senderID: "xxxxxxxx",
badge: "true"
});
至少对我有用。