Push уведомления

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Push уведомления

Сообщение Glebka 05 авг 2021, 18:57

привет всем, дайте пендель в нужном направлении.

создаю пуш уведомления всё научился, всё круто.
два момента
пропадают при перезагрузке устройства((( как бы обойти этот момент.
и второй, наверное самый важный. как проверить наличие запланированных уже уведомлений что бы несколько одинаковых не планировать?
например сравнить имена и даты, и в случае отсутствия такового планировать
Моё детище, продолжаю работать над гранями
_https://play.google.com/store/apps/deta ... ompany.Cat

Люблю критику
Glebka
UNIт
 
Сообщения: 84
Зарегистрирован: 11 дек 2019, 10:27

Re: Push уведомления

Сообщение Glebka 05 авг 2021, 21:20

https://m.youtube.com/watch?v=L3rFmc1spQs
По этому видео делал, с некоторыми доработками (не по секундам) задаю переменными: имя; описание; дату и время уведомления. В пределах нескольких дней они точно работают на андройде (если не перезагружать телефон)
Идея в следующем. Что бы не грузить сильно систему я бы просто создавал 4 уведомления (1, 2 , 3, 4) последовательно друг за другом, а при запуске приложения проверял какие уведомления в системе остались сравнивал с блидайшими необходимыми и если необходимо добавлял (3, 4, 5, 6) или если произошёл сбой обновлял (1, 2 ,3 ,4).
Надеюсь понятно сформулировал?(
Моё детище, продолжаю работать над гранями
_https://play.google.com/store/apps/deta ... ompany.Cat

Люблю критику
Glebka
UNIт
 
Сообщения: 84
Зарегистрирован: 11 дек 2019, 10:27

Re: Push уведомления

Сообщение DbIMok 06 авг 2021, 01:24

в юнити пушах есть флажок сохранять при перезапуске устройства. насчет планирования - на старте очищаешь все, в паузе/фокусе при выходе из приложения планируешь новые, при входе очищаешь
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Push уведомления

Сообщение Glebka 06 авг 2021, 08:47

А всё спасибо, инструкцию к обложке не прочёл))
Моё детище, продолжаю работать над гранями
_https://play.google.com/store/apps/deta ... ompany.Cat

Люблю критику
Glebka
UNIт
 
Сообщения: 84
Зарегистрирован: 11 дек 2019, 10:27

Re: Push уведомления

Сообщение Glebka 08 авг 2021, 02:26

var identifier = AndroidNotificationCenter.SendNotification(n, "channel_id");
вот из этого руководства
https://docs.unity3d.com/Packages/com.u ... index.html
Может кто разъяснить что за аргумент "n" ?
И почему как то очень мало информации про уведомления, не так как то ищу что ли??
Моё детище, продолжаю работать над гранями
_https://play.google.com/store/apps/deta ... ompany.Cat

Люблю критику
Glebka
UNIт
 
Сообщения: 84
Зарегистрирован: 11 дек 2019, 10:27

Re: Push уведомления

Сообщение DbIMok 09 авг 2021, 13:15

то же, что и в других местах - AndroidNotificationCenter.SendNotification(notification, "channel_id");
только здесь notification сократили до n, вероятно по небрежности
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Push уведомления

Сообщение macaroshka 28 мар 2022, 16:45

А кто-нибудь знает как сделать уведомления как в клеш оф кленц ?. Что например на игрока нападают и игроку приходит push уведомление мол "хозяин на вашу деревню напали"
macaroshka
UNец
 
Сообщения: 1
Зарегистрирован: 28 мар 2022, 16:39

Re: Push уведомления

Сообщение Saltant 28 мар 2022, 17:40

macaroshka писал(а):А кто-нибудь знает как сделать уведомления как в клеш оф кленц ?. Что например на игрока нападают и игроку приходит push уведомление мол "хозяин на вашу деревню напали"

OneSignal какой нить.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2236
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: Push уведомления

Сообщение skroliks 06 ноя 2023, 09:53

Saltant писал(а):
macaroshka писал(а):А кто-нибудь знает как сделать уведомления как в клеш оф кленц ?. Что например на игрока нападают и игроку приходит push уведомление мол "хозяин на вашу деревню напали"

OneSignal какой нить.


В общем, перерыл кучу информации и пришел к итогу, что ни встроенные Mobile Notifications от Unity, ни Файербес ни Вансигнал - не работают уведомления, если приложение закрыто.. Но! Я вижу что есть куча приложений, где это все работает - и тут главный вопрос возникает: что это за тайна за семью печатями? Как или чем сделать нормально, чтобы уведомления прилетали на телефон при закрытом приложении? Хоть кто-то разобрался? :-?
skroliks
UNIт
 
Сообщения: 60
Зарегистрирован: 10 сен 2022, 13:30

Re: Push уведомления

Сообщение Saltant 06 ноя 2023, 14:13

skroliks писал(а):что это за тайна за семью печатями? Как или чем сделать нормально, чтобы уведомления прилетали на телефон при закрытом приложении? Хоть кто-то разобрался? :-?

Ни какая это не тайна, ты должен писать сервис который будет работать нативно в фоне андройда и делать нужные тебе дела (пушить пуши). Если ты что то делаешь в плеере юнити и его закрываешь то соответственно че работать то должно если ты это закрыл?
Ваще не понятно почему ты говоришь что у тебя не работают Android Service и Firebase Cloud Messaging (FCM), может ты какие то пермишшен не запросил? Под спойлером пример, но форум почему то символы покорябил кода, ну в целом понятно должно быть.

Скрытый текст:
Чтобы создать простой пуш-сервис с уведомлениями, которые будут работать в фоновом режиме на Android, вам понадобится использовать Android Service и Firebase Cloud Messaging (FCM). Вот примерный план действий:
Создайте проект на платформе Firebase (https://firebase.google.com/) и настройте его для своего Android-приложения. Получите файл конфигурации google-services.json, который вам понадобится позднее.
В своем проекте Android создайте класс, который будет расширять FirebaseMessagingService. Переопределите методы onMessageReceived() и onNewToken(). Примерный код может выглядеть так:

Синтаксис:
Используется java
import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;

public class MyFirebaseMessagingService extends FirebaseMessagingService {

    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        // Обработка полученного уведомления
        if (remoteMessage.getNotification() != null) {
            String title = remoteMessage.getNotification().getTitle();
            String body = remoteMessage.getNotification().getBody();

            // Создание уведомления и отображение его
            NotificationUtils.showNotification(this, title, body);
        }
    }

    @Override
    public void onNewToken(String token) {
        // Обработка обновления токена устройства
        // Здесь вы можете отправить токен на ваш сервер или сохранить его для дальнейшего использования
    }
}
 


Создайте класс вспомогательных утилит NotificationUtils, который будет использоваться для создания и отображения уведомлений. Примерный код может выглядеть так:
Синтаксис:
Используется java
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.content.Context;
import android.os.Build;

public class NotificationUtils {

    private static final String CHANNEL_ID = "MyNotificationChannel";
    private static final String CHANNEL_NAME = "My Notifications";

    public static void showNotification(Context context, String title, String body) {
        NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            NotificationChannel channel = new NotificationChannel(
                    CHANNEL_ID,
                    CHANNEL_NAME,
                    NotificationManager.IMPORTANCE_LOW);
            notificationManager.createNotificationChannel(channel);
        }

        Notification.Builder builder = new Notification.Builder(context)
                .setContentTitle(title)
                .setContentText(body)
                .setSmallIcon(R.drawable.ic_notification);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            builder.setChannelId(CHANNEL_ID);
        }

        Notification notification = builder.build();
        notificationManager.notify(0, notification);
    }
}
 

В манифесте вашего приложения зарегистрируйте службу MyFirebaseMessagingService и определите необходимые разрешения. Примерный код может выглядеть так:
Синтаксис:
Используется xml
<manifest>
    <uses-permission android:name="android.permission.INTERNET" />

    <application>
        <!-- ... -->
       
        <service android:name=".MyFirebaseMessagingService">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
        </service>
    </application>
</manifest>
 

В вашей главной активности приложения подключитесь к службе Firebase и запросите разрешение на получение уведомлений. Примерный код может выглядеть так:
Синтаксис:
Используется java
import com.google.firebase.messaging.FirebaseMessaging;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate&#40;Bundle savedInstanceState&#41; {
        super.onCreate&#40;savedInstanceState&#41;;
        setContentView&#40;R.layout.activity_main&#41;;

        // Подключение к службе Firebase и запрос разрешений
        FirebaseMessaging.getInstance&#40;&#41;.subscribeToTopic&#40;"all"&#41;;
       
        // Дополнительные действия, необходимые для вашего приложения...
    }
}
 
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2236
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: Push уведомления

Сообщение DbIMok 07 ноя 2023, 01:33

skroliks писал(а):Как или чем сделать нормально

да любым, только правильно интегрировать, не пропуская "непонятные" места
например, для FCM скорее всего не было сделано https://firebase.google.com/docs/cloud- ... t_activity
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Push уведомления

Сообщение skroliks 17 ноя 2023, 13:39

DbIMok писал(а):
skroliks писал(а):Как или чем сделать нормально

да любым, только правильно интегрировать, не пропуская "непонятные" места
например, для FCM скорее всего не было сделано https://firebase.google.com/docs/cloud- ... t_activity


В общем, с FCM разобрался - все приходит даже с выключенным приложением - я просто прежде, чем пробовать сам, начитался отзывов где писали, что не работает так.. В целом - все работает как надо без танцев с бубном даже. Единственное - по коду примера в документации у меня лупило почему-то ошибку и удалось найти немного доработанный код с асинхронным запросом - и вот тогда ошибки исчезли и сообщения начали приходить.

Но! FCM все таки не совсем то, чем хотелось бы пользоваться (точнее подходят далеко не под все мои задачи) - поэтому надо дальше копать про Mobile Notifications от самой Unity, чтобы там работало все как надо. В другой ветке предложили вариант, но там пока все не просто для меня и буду пытаться разбираться..

Всем спасибо за ответы! :ymparty:
skroliks
UNIт
 
Сообщения: 60
Зарегистрирован: 10 сен 2022, 13:30


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 22