Onesignal Web Push-уведомление во FrappePython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Onesignal Web Push-уведомление во Frappe

Сообщение Anonymous »

Я использую Onesignal для веб-push-уведомлений для проектов frappe. Поэтому в основном для Frappe on Doctype (Custom) я создал специальные кнопки «Подписаться» и «Отписаться». Поэтому, если пользователь нажмет «подписаться», он получит подписку и то же самое для отмены подписки. Для этого мой код:

Код: Выделить всё

frappe.ui.form.on("Settings", {

onload: function(frm) {
frappe.call({
method: "plantmaintenance.plantmaintenance.doctype.settings.settings.get_context",
callback: function(r) {
var data = r.message;
$(frm.fields_dict["subscribe_and_unsubscribe"].wrapper).html(data);
refresh_field("subscribe_and_unsubscribe");
bindOneSignalButtons(frm);
}
});
}
});
function bindOneSignalButtons(frm) {
$('#subscribe').on('click', function(event) {
event.preventDefault();
var userId = getUserId();
if (userId) {
OneSignal.push(["registerForPushNotifications"]);
var externalUserId = frappe.session.user;
OneSignal.push(function() {
OneSignal.setExternalUserId(externalUserId);
updateButtonState(true);
})
} else {
frappe.msgprint(__('User is not logged in.'));
}
});

$('#unsubscribe').on('click', function(event) {
OneSignal.push(function() {
OneSignal.setSubscription(false).then(function() {
updateButtonState(false);
});
});
});
checkSubscriptionStatus();
}

function checkSubscriptionStatus() {
OneSignal.push(function() {
OneSignal.getSubscription().then(function(isSubscribed) {
updateButtonState(isSubscribed);
});
});
}
function updateButtonState(isSubscribed) {
if (isSubscribed) {
$('#unsubscribe').show();
$('#subscribe').hide();
} else {
$('#unsubscribe').hide();
$('#subscribe').show();
}
}
Ниже приведен мой HTML-код, в котором я определяю свою кнопку и инициализацию OneSignal.

Код: Выделить всё





OneSignal Subscription




.button {
background-color: #008CBA;
border: none;
color: white;
padding: 15px 32px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 16px;
cursor: pointer;
}






Subscribe
Unsubscribe





var OneSignal = window.OneSignal || [];

OneSignal.push(["init", {
appId: "ONE_SIGNAL_APP_ID",
autoRegister: false,
notifyButton: {
enable: false
},
allowLocalhostAsSecureOrigin: false,
persistNotification: false,
}]);

function getUserId() {
return typeof frappe !== 'undefined' ? frappe.session.user : null;
}



Вышеуказанные функции работают нормально. Но когда я обновляю страницу, две кнопки полностью исчезают. Получение неперехваченной ошибки. Обещание OneSignal Инициализация не удалась.
Опять мне нужно очистить кеш, и код работает нормально.

Подробнее здесь: https://stackoverflow.com/questions/790 ... -in-frappe
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»