В настоящее время я работаю над веб-push-уведомлениями и на последней стадии использования веб-push-библиотек для отправки уведомления.
Я использую C # web-push-библиотеку здесь .Тем не менее, я не вижу уведомления, когда на странице или когда не на нем.
Я прилагаю свой код ниже:
Я написал код в моем методе подписки магазина, чтобы он мог бытьодна из проблем.
[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:hhhhhhh@gmail.com";
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);
}
}
И мой код работника службы для обработки push-кода выглядит следующим образом:
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 и уведомление apis.
функция получает удар и не вызывает никаких исключений.Кроме того, когда я помещаю отладчик в сервисный работник, он не попадает в цель, так что очевидно, что push не получает указатели. Я могу быть совершенно неправ в этом.