Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.08.2017, 11:24   #1
Ksinov
 
Регистрация: 14.06.2017
Сообщений: 9
По умолчанию Подписаться на рассылку отписаться

Доброе время суток

этот код подписывает человека на уведомление при нажатию checkbox
сам код
Код:
const messaging = firebase.messaging();
 
 
 
$(document).ready(function () {
    if (Notification.permission === 'granted') {
        $("#someSwitchOptionInfo").prop('checked', true);
    }
    $('#someSwitchOptionInfo').click(function () {
        subscribe();
 
    });
});
 
 
 
function subscribe() {
    if ('Notification' in window) {
 
    }else{
        alert("Ваш браузер не потдерживает push уведамление");
        return false;
    }
 
 
    messaging.requestPermission()
        .then(function () {
 
            messaging.getToken()
                .then(function (currentToken) {
                    console.log("токен получин");
 
                    if (currentToken) {
                        sendTokenToServer(currentToken);
                    } else {
                        console.warn('Не удалось получить токен.');
                        setTokenSentToServer(false);
                    }
                })
                .catch(function (err) {
                    console.warn('При получении токена произошла ошибка.', err); // Вот тут срывается код 
                    setTokenSentToServer(false);
                });
        })
        .catch(function (err) {
            console.warn('Не удалось получить разрешение на показ уведомлений.', err);
        });
}
 
// отправка ID на сервер
function sendTokenToServer(currentToken) {
    if (!isTokenSentToServer(currentToken)) {
        console.log('Отправка токена на сервер...');
 
        $.ajax({
            url: "firebaseid.php",
            type: "POST",
            data: ({
                token: currentToken
            }),
            dataType: "html",
            success: function (data) {
 
            }
        });
        setTokenSentToServer(currentToken);
    } else {
        console.log('Токен уже отправлен на сервер.');
    }
}
 
// используем localStorage для отметки того,
// что пользователь уже подписался на уведомления
function isTokenSentToServer(currentToken) {
    return window.localStorage.getItem('sentFirebaseMessagingToken') == currentToken;
}
 
function setTokenSentToServer(currentToken) {
    window.localStorage.setItem(
        'sentFirebaseMessagingToken',
        currentToken ? currentToken : ''
    );
}
Код:
 <ul class="list-group">
 
                    <li class="list-group-item">
                            Подписаться на рассылку
                        <div class="material-switch pull-right">
                            <input id="someSwitchOptionInfo" name="someSwitchOption001" type="checkbox"/>
                            <label for="someSwitchOptionInfo" class="label-info"></label>
                        </div>
                    </li>
 
                </ul>
т.е вообщем при нажатие на checkbox просит разрешение на подписку потом если подписка есть checkbox активный если человек захочет отписаться опять нажимает и отписка (вот только как ее делать не знаю самая главная проблема ) checkbox больше не активный пожалуйста помогите с этим
Ksinov вне форума Ответить с цитированием
Старый 25.08.2017, 09:38   #2
Ksinov
 
Регистрация: 14.06.2017
Сообщений: 9
По умолчанию

Люди это что сделать не реально что ли ??
Ksinov вне форума Ответить с цитированием
Старый 25.08.2017, 10:27   #3
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

реально все...
нужно менять вот этот блок
Код:
$('#someSwitchOptionInfo').click(function () {
if ($("#someSwitchOptionInfo").prop('checked')) {
unsubscribe();
} else {
subscribe();
} 
});
Ну и написать код функции unsubsribe() которая будет отписывать клиента
ADSoft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отписаться от события xWinDx Общие вопросы .NET 4 25.11.2012 02:56
подписаться на событие в главной форме tat-besidovska C# (си шарп) 6 13.06.2012 11:42
Подписаться на событие другого приложения Tolias C# (си шарп) 6 07.03.2012 17:59
Подписаться на событие загруженной Assembly Ustim C# (си шарп) 3 15.06.2011 01:51
Подписаться на событие другого класса boris-blade Общие вопросы .NET 1 06.04.2010 22:53