Очистить номер значка Appcelerator studio, arrowdb и iOS?
Поэтому я отправляю push-уведомления, используя arrowdb и облачный сервис с Appcelerator. Это, кажется, работает хорошо, и iphone получает уведомление. Что мне интересно, есть ли какой-нибудь простой способ очистить нумер значка до 0? Это должно быть сброшено на сервере arrowdb (или apple), я думаю.
Я хочу, чтобы значок сбрасывался при каждом открытии приложения.
Что я сделал, так это добавил слушателя резюме в alloy.js
Ti.App.addEventListener("resumed", function(e){
В прослушивателе событий я сначала делаю (чтобы сбросить значок локально):
Cloud.PushNotifications.resetBadge({
device_token: device_token
}, function (e) {
if (e.success) {
Ti.API.info('Badge Reset!');
}
else {
Ti.API.error(e);
}
});
Затем я также отправляю push для очистки значка на сервере, отправляя push для себя:
var push_payload = {
badge:0,
sound:"",
alert:"",
title:"",
message_text:"",
push_type:"clear",
from_user:Alloy.Globals.currentUser.id,
vibrate:false
};
Cloud.PushNotifications.notify({
channel: 'private_message',
payload: push_payload,
to_ids: Alloy.Globals.currentUser.id
}, function (e) {
if (e.success) {
Ti.API.info('Success sending push notification');
} else {
Ti.API.info('Error sending push: '+((e.error && e.message) || JSON.stringify(e)));
}
});
Прослушиватель событий, кажется, вызван, и push-сообщение отправлено. Но почему-то значок все еще остается на устройстве iphone... Должен ли я сделать это по-другому?
2 ответа
Для использования Android: Ti.Android.NotificationManager.cancelAll()
Эта команда очищает уведомление и значок
Чтобы убрать номер значка, в проекте, который я делал несколько раз назад, я успешно использовал
Ti.UI.iPhone.setAppBadge(0);
Надеюсь, это сработает и для вас.