В настоящее время я работаю над веб-push-уведомлениями и нахожусь на последнем этапе использования веб-push-библиотек для отправки уведомления.
Я использую библиотеку веб-push C# здесь. Однако я не вижу уведомления, когда на странице или когда ее нет.
Я прилагаю свой код ниже:
Я написал код в своем методе подписки на магазин, так что это может быть одной из проблем.
[HttpPost]
public void StoreSubscription(string [] publicKey, string [] auth, string notificationEndPoint )
{
var pushEndpoint = notificationEndPoint;
var pushAuth = auth[0].ToString();
var pushP256DH = publicKey[0].ToString();
var subject = "mailTo:[email protected]";
var uPublicKey = "yyzzxx";
var privateKey = "xxyyzz";
System.IO.File.WriteAllText(@"\Desktop\Subscription.txt", pushEndpoint);
var subscription = new PushSubscription(pushEndpoint, pushP256DH, pushAuth);
var gcmAPIKey = "AAAA";
var vapidDetails = new VapidDetails(subject, uPublicKey, privateKey);
var webPushClient = new WebPushClient();
try
{
webPushClient.SetGCMAPIKey(gcmAPIKey);
webPushClient.SendNotification(subscription, "payload", gcmAPIKey);
}
catch (WebPushException exception)
{
Console.WriteLine("HTTP status Code:" + exception.StatusCode);
}
}
И мой сервисный рабочий код для обработки нажатия выглядит следующим образом:
self.addEventListener('push', function (event) {
debugger
var body;
if (event.data) {
body = event.data.text();
} else {
body = 'Push message no payload';
}
var options = {
body: body,/*'This message was generated from a push'*/
icon: '/Images/noun_Pushing_1823359.png',
vibrate: [100, 200, 100, 200, 400],
data: {
dateOfArrival: Date.now(),
primaryKey: '2'
},
actions: [
{
action: 'explore', title: 'Explore this new world',
icon: '/Images/noun_Check Mark_4870.png'
},
{
action: 'close', title: 'Close',
icon: '/Images/noun_Close_887590.png'
},
]
};
event.waitUntil(
self.registration.showNotification('Push Notification', options)
);
});
Я застрял на этом уже почти долгое время и очень новичок в обещаниях, сервисном работнике, push-уведомлениях и уведомлениях.
функция получает удар и не генерирует никаких исключений. Кроме того, когда я помещаю отладчик в сервис-воркера, он не попадает, поэтому, очевидно, push не обрабатывается. Я могу быть совершенно неправ в этом.