Задать вопрос
@Irinka95

Как передать событие клика по пуш-уведомлению в формате Ajax для увеличения счётчика кликов?

Всем привет. Подскажите, пожалуйста, как передать клик пользователя в ajax обратно, чтобы увеличить счетчик кликов в БД?
Код js
function getNotification() {	
	if (!Notification) {
		$('body').append('<h4 style="color:red">*Browser does not support Web Notification</h4>');
		return;
	}
	if (Notification.permission !== "granted") {		
		Notification.requestPermission();
	} else {		
		$.ajax({
			url : "/ajax.php?action=app&type=push_notification",
			type: "POST",
			success: function(response, textStatus, jqXHR) {
				var response = jQuery.parseJSON(response);
				if(response.result == true) {
					var notificationDetails = response.notif;
					for (var i = notificationDetails.length - 1; i >= 0; i--) {
						var notificationUrl = notificationDetails[i]['url'];
						var notificationObj = new Notification(notificationDetails[i]['title'], {
							icon: notificationDetails[i]['icon'],
							body: notificationDetails[i]['message'],
						});
						notificationObj.onclick = function () {
                                                       //Что сюда добавить?
							window.open(notificationUrl); 
							notificationObj.close();     
						};
						setTimeout(function(){
							notificationObj.close();
						}, 7000);
					};
				} else {
				}
			},
			error: function(jqXHR, textStatus, errorThrown)	{}
		}); 
	}
};


И часть кода php
$arrayNotify = []; 
$rowsNotify = [];
//... условие при котором показывается уведомление ... {
$dataNotify['title'] = $userNotification['title'];
 $dataNotify['message'] = $userNotification['message'];
 $dataNotify['icon'] = $userNotification['img'];
 $dataNotify['url'] = $userNotification['url'];
 $rowsNotify[] = $dataNotify;
 $pdo->prepare("UPDATE `push_notify` SET `view` = `view` + '1'  WHERE `id` = ?")->execute([$userNotification['id']]);
//}
$arrayNotify['notif'] = $rowsNotify;
$arrayNotify['result'] = true;
echo json_encode($arrayNotify);
  • Вопрос задан
  • 29 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы