Я разработал приложение для Android с использованием Ionic 2. Приложение прекрасно работает, и уведомления отправляются в приложение правильно. Тем не менее, я всегда получаю push-уведомление, значок значка, на который рассчитываются уведомления, не отображается.Как увеличить уведомление о значке в значке приложения Android с помощью Ionic 2?
Я пробовал много, я много искал в Интернете, и ни одно решение не работает.
Информация:
- У меня есть
cordova-plugin-badge
установлен. - В моей
app.component.ts
я уже импортирован Знак Plugin:import { Badge } from 'ionic-native';
- Чтобы проверить, я выставиться счетчик жетонов до 10, с этим кодом:
Badge.set(10);
- я гнал этот код внутриconstructor
вapp.components.ts
.
Я использовал Ionic tutorial, чтобы использовать значок.
Я попытался разработать, используя plugin tutorial, но это неспецифично для Ионного. Тогда я не знаю, как это может помочь.
Я использовал Ionic 2 tutorial to do the push notifications и, как я сказал, отлично работает.
Ну, документация Ion о значке сообщает, что я должен использовать Badge.increase(x)
. Я не знаю, где поставить этот код. Я думал, что должен указать: Когда на устройство приходит уведомление, то Badge.increase(x)
. Но я не знаю, как это сделать.
Мой Нажмите код уведомления:
this.push.register().then((t: PushToken) => {
return this.push.saveToken(t);
}).then((t: PushToken) => {
console.log('Token saved:', t.token);
});
this.push.rx.notification()
.subscribe((msg) => {
alert(msg.title + ': ' + msg.text);
Badge.clear();
});
Но этот код работает только с приложением открыт. Когда я получаю фоновое уведомление, как увеличить значок?
Другая важная информация:
Я эмулировать Android с использованием Android Emulator, предоставленный Android Studio. device specs.
В мониторе Android устройств, я вижу эту ошибку:
01-25 21:26:54.558: W/PackageManager(6769): Unknown permission com.sec.android.provider.badge.permission.READ in package com.ionicframework.myapp343731
01-25 21:26:54.558: W/PackageManager(6769): Unknown permission com.sec.android.provider.badge.permission.WRITE in package com.ionicframework.myapp343731
Список ошибок continues here.
Попробуйте найти эту ошибку в Google. Результаты мало. Характеристики нулевого результата для ионного. Удивительно, да?
И ... Я вижу уведомления о значке в Android. Это можно сделать. Но как?
Извините, мой английский и длинный текст.
Спасибо!
EDIT 1 --------------------
Моя среда:
OS: Ubuntu 16.04.1 LTS
node -v: v5.12.0
npm -v: 3.8.6
ionic -v: 2.2.1
cordova -v: 6.4.0
cordova-plugin-badge version: 0.7.4
EDIT 2 ----- ---------------
Мой PHP код которым отправить уведомление ионического через CURL:
$yourApiSecret = "myApiSecret"; // Available in Ionic Dashboard
$androidAppId = "myAndroidAppId"; // Available in Ionic Dashboard
$api_token = "my.api.token"; // Created in Ionic Dashboard
$data = array(
"tokens" => "send_to_all",
"profile" => "my_created_profile", //Created in Ionic Dashboard
"send_to_all" => true,
"notification" => array(
'title' => $title,
'message' => $message,
)
);
$data_string = json_encode($data);
$ch = curl_init('https://api.ionic.io/push/notifications');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER,
array(
'Content-Type: application/json',
'X-Ionic-Application-Id: '.$androidAppId,
'Content-Length: ' . strlen($data_string),
'Authorization: Bearer '.$api_token
)
);
$result = curl_exec($ch);
При отправке push-уведомления из вашего внутреннего блока вы можете предоставить счетчик значков. – JoeriShoeby
Привет @JoeriShoeby, спасибо за ответ. Но как я могу это сделать? Я так много пробовал и ничего не делал. Используя Ionic 2, как поместить значок значка в значок приложения, получив push-уведомление? –
Что у вас есть в качестве заднего сервера? – JoeriShoeby