Я хочу дать пользователям возможность отписаться от уведомлений. Я уже ознакомился с документацией Expo, но до сих пор не знаю, как реализовать ее в своем коде.
Вот что я хочу реализовать: https://docs.expo.io/versions/latest/sdk/notifications/#eventsubscription
Notifications.addListener(listener)
EventSubscription
а затем удалить() (функция) -- отписать слушателя от будущих уведомлений. Уведомление
Вот метод componentDidMount:
componentDidMount() {
registerForPushNotificationsAsync();
// Handle notifications that are received or selected while the app
// is open. If the app was closed and then opened by tapping the
// notification (rather than just tapping the app icon to open it),
// this function will fire on the next tick after the app starts
// with the notification data.
this._notificationSubscription = Notifications.addListener(this._handleNotification);
}
Некоторая помощь была бы очень здоровой
Наилучшие пожелания Мусайаб
Ага, я тоже об этом думал, хватит? А что, если я настраиваю свои уведомления на другой странице, и у меня есть кнопка для отмены подписки на другой странице, как я тогда вызову функцию?
передать это как опору
Я звоню this._notificationSubscription.remove(); но все еще получаю уведомления
Да, вы продолжите получать уведомления. Когда вы remove, this._handleNotification не должны звонить.
@ 10101010 то, что вы говорите, несколько противоречит документам. Ум объяснить?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Просто быстрый ответ, так как я думаю, что в большинстве ответов или комментариев, по крайней мере, отсутствует ваша точка зрения. Вы можете остановить приложение, прослушивающее уведомления, выполнив это._notificationSubscription.remove(); Но я предполагаю, что вы ищете способ отписать пользователя от всех будущих уведомлений (то, что вы обычно предлагаете в меню настроек или меню параметров, чтобы вы не спамили пользователя, если они просят ваше приложение не отправлять им уведомления), это конечно, это можно сделать на большинстве телефонов из фактических настроек телефона, и поэтому ваше приложение должно подчиняться этому запросу, или магазины приложений, такие как Google и Apple, не позволят вашему приложению вообще отправлять уведомления любому пользователю независимо от состояния подписки.
В настоящее время единственный способ справиться с этим — на стороне сервера для удаленных уведомлений, локальные — вы можете просто использовать asyncstorage для хранения настроек и ссылаться на них перед отправкой любых уведомлений по времени. Вы захотите настроить вызов своего сервера уведомлений, чтобы удалить токен уведомления из вашей базы данных, что предотвратит отправку вашей системой на это устройство каких-либо уведомлений в будущем.
Хороший ответ. Подписка на уведомления не о том, получать или не получать уведомления, это способ управления уже полученными уведомлениями. Если вы не хотите, чтобы ваш пользователь получал уведомление, вам просто нужно не отправлять его со стороны сервера.
звоните
this._notificationSubscription.remove()