Powiadomienia typu push z Azure Notification Hubs

W tym artykule opisano sposób wysyłania powiadomień push przeglądarki do pojedynczych użytkowników przy użyciu Azure Notification Hubs.

Ogólnie rzecz biorąc, proces wygląda następująco:

  1. Ustaw poświadczenia:

  2. Tworzenie rejestracji i instalacji.

  3. Wysyłanie powiadomień push:

Przegląd

Powiadomienia push (lub powiadomienia przeglądarki) to typ powiadomień, które użytkownicy otrzymują na pulpicie w przeglądarkach klasycznych, lub w niektórych przypadkach, w przeglądarkach mobilnych, na podstawie poszczególnych witryn internetowych.

Azure Notification Hubs obsługuje teraz browser push dla wszystkich głównych przeglądarek, w tym Microsoft Edge, Google Chrome i Mozilla Firefox. Przeglądarka Apple Safari nie jest dołączona. W przypadku przeglądarki Apple Safari możesz użyć istniejącej obsługi usługi APNS zgodnie z opisem w temacie Konfigurowanie powiadomień wypychanych w przeglądarce Safari z uwierzytelnianiem opartym na certyfikatach.

Powiadomienia push w przeglądarkach są obsługiwane na wszystkich platformach urządzeń z następującymi systemami operacyjnymi i przeglądarkami.

Obsługa powiadomień push na laptopach.

System operacyjny Przeglądarki
system operacyjny Windows Google Chrome v48+
Microsoft Edge w wersji 17 lub nowszej
Mozilla Firefox v44+
Safari w wersji 7 lub nowszej
Opera w wersji 42+
macOS Chrome v48+
Firefox v44+
Safari w wersji 7 lub nowszej
Opera w wersji 42+
System operacyjny Linux Chrome v48+
Firefox v44+
Safari w wersji 7 lub nowszej
Opera w wersji 42+

Obsługa powiadomień push przeglądarki na tabletach.

System operacyjny Przeglądarki
system operacyjny Windows Chrome v48+
Firefox v44+
Opera w wersji 42+
iOS Niewspierane.
System operacyjny Android Chrome v48+
Firefox v44+
Opera w wersji 42+

Obsługa powiadomień push w przeglądarce na urządzeniach mobilnych:

System operacyjny Przeglądarki
iOS Niewspierane.
System operacyjny Android Chrome v48+
Firefox v44+
Opera w wersji 42+

Ustaw poświadczenia

Aby subskrybować powiadomienia push przeglądarki w witrynie internetowej, możesz użyć kluczy VAPID. Poświadczenia VAPID można wygenerować przy użyciu usług, takich jak generator kluczy VAPID. Poświadczenia powinny wyglądać podobnie do poniższego przykładu:

{ 
    "location": "South Central US", 
    "properties": { 
        "browserCredential": { 
            "properties": { 
                "subject": "mailto:email@microsoft.com", 
                "vapidPublicKey": "some-vapid-public-key", 
                "vapidPrivateKey":"some-vapid-private-key" 
            } 
        } 
    } 
} 

Ustawianie poświadczeń w portalu Azure

Aby ustawić poświadczenia do powiadomień push w przeglądarce w portalu Azure, wykonaj następujące kroki:

  1. W portalu Azure otwórz blok Browser (Web Push) w centrum powiadomień.

    Zrzut ekranu przedstawiający panel Przeglądarka (Web Push) w usłudze Notification Hubs.

  2. Wprowadź istniejące klucze VAPID lub wygeneruj nową parę kluczy VAPID przy użyciu usługi, takiej jak generator kluczy VAPID.

  3. Wybierz opcję Zapisz.

Ustawianie poświadczeń przy użyciu interfejsu API REST

Możesz również ustawić poświadczenia przeglądarki dla powiadomień push w przeglądarce za pomocą interfejsu API REST, korzystając z takich metod jak Utwórz lub zaktualizuj interfejs API REST centrum, API Azure Resource Manager lub dostawcy zasobów w wersji 2.

Wprowadź poświadczenia w tym formacie, podając identyfikator subskrypcji, grupę zasobów, przestrzeń nazw i centrum powiadomień:

https://management.azure.com/subscriptions/{subscription}/resourceGroups/{resource-group}/providers/Microsoft.NotificationHubs/namespaces/{namespace}/notificationHubs/{hub}api-version=2016-03-01

Ustawianie poświadczeń przy użyciu Azure SDKs

Możesz ustawić poświadczenia dla powiadomień push w przeglądarce za pomocą Azure SDKs. Oto przykład użycia zestawu SDK .NET:

var browserCreds = new BrowserCredential 
{ 
    Subject = "<subject>", 
    VapidPublicKey = "<vapid public key>", 
    VapidPrivateKey = "<vapid private key>", 
} 

i:

await nhManagementClient.NotificationHubs.CreateOrUpdateAsync(config.ResourceGroupName, config.NamespaceName, config.HubName, new NotificationHubCreateOrUpdateParameters(config.Location) 
{ 
   BrowserCredential = browserCreds 
});

Tworzenie rejestracji i instalacji

Wysyłanie zbiorcze wymaga rejestracji lub instalacji. Możesz również użyć rejestracji i instalacji do wysyłania informacji debugowania.

W poniższych przykładach przedstawiono treść żądania rejestracji dla rejestracji natywnej, rejestracji szablonu i instalacji przeglądarki.

Treść żądania rejestracji natywnej

<?xml version="1.0" encoding="utf-8"?><entry xmlns="http://www.w3.org/2005/Atom"><content type="application/xml"><BrowserRegistrationDescription xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect"><Endpoint></Endpoint><P256DH></P256DH><Auth></Auth></BrowserRegistrationDescription></content></entry> 

Treść żądania rejestracji szablonu przeglądarki

<?xml version="1.0" encoding="utf-8"?> 
<entry xmlns="http://www.w3.org/2005/Atom"> 
    <content type="application/xml"> 
        <BrowserTemplateRegistrationDescription xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect"> 
            <Endpoint></Endpoint> 
            <P256DH></P256DH> 
            <Auth></Auth> 
            <BodyTemplate><![CDATA[{"title":"asdf","message":"xts"}]]></BodyTemplate> 
        </BrowserTemplateRegistrationDescription> 
    </content> 
</entry> 

Treść żądania instalacji

{  
    "installationId": "installation-id", 
    "platform": "browser", 
    "pushChannel": { 
            "endpoint": "", 
            "p256dh": "", 
            "auth": "" 
        } 
}   

Tworzenie rejestracji natywnych (SDK)

await notificationHubClient.CreateBrowserNativeRegistrationAsync(subscriptionInfo, tagSet);

Tworzenie rejestracji szablonów (SDK)

await notificationHubClient.CreateBrowserTemplateRegistrationAsync(subscriptionInfo, template, tagSet);

Tworzenie instalacji przeglądarki (SDK)

var browserPushSubscription = new BrowserPushSubscription 
            { 
                Endpoint = "", 
                P256DH = "", 
                Auth = "", 
            }; 

var browserInstallation = new BrowserInstallation 
            { 
                InstallationId = installationId, 
                Tags = tags, 
                Subscription = browserPushSubscription, 
                UserId = userId, 
                ExpirationTime = DateTime.UtcNow.AddDays(1), 
            }; 

await notificationHubClient.CreateOrUpdateInstallationAsync(browserInstallation);

Wysyłanie powiadomień push

Po ustawieniu poświadczeń dla powiadomień przeglądarki i tworzeniu rejestracji i instalacji dla urządzeń możesz przystąpić do tworzenia powiadomień push. W tej sekcji opisano sposób tworzenia powiadomienia dla bezpośredniego wysyłania|, wysyłki dla odbiorców i wysyłki debugowania (testowej).

Utwórz bezpośrednie wysyłki

W przypadku bezpośredniego wysyłania potrzebujesz identyfikatora URI punktu końcowego, klucza p25DH i tajnych danych uwierzytelniania z subskrypcji przeglądarki. Aby uzyskać więcej informacji o powiadomieniach bezpośrednich, zobacz Wysyłanie bezpośrednie.

Aby utworzyć bezpośrednie powiadomienie o wysyłaniu, wykonaj następujące kroki:

  1. Ustaw następujące nagłówki dla powiadomień push dla przeglądarki.

    • ServiceBusNotification-Format - browser
    • ServiceBusNotification-DeviceHandle - endpoint endpoint: pole z subskrypcji
    • P256DH p256dh: pole z subskrypcji
    • Auth auth: pole z subskrypcji
  2. Utwórz treść wiadomości. Treść komunikatu jest zwykle w tym formacie:

    { 
      "title": "Some Title", 
      "body": "Some body of a message" 
    } 
    

    Możesz określić inne pola w treści; na przykład icon, aby zmienić ikonę dla wiadomości.

  3. Wyślij powiadomienie.

Możesz również użyć zestawu SDK .NET do utworzenia bezpośredniego wysyłania:

var browserSubscriptionEndpoint = ""; 
var browserPushHeaders = new Dictionary<string, string> 
            { 
               { "P256DH", "" }, 
               { "Auth", "" }, 
            }; 

var directSendOutcome = await notificationHubClient.SendDirectNotificationAsync(new BrowserNotification("payload", browserPushHeaders), browserSubscriptionEndpoint);

Tworzenie wysyłek do odbiorców

W przypadku wysyłki do odbiorców użyj tego samego ServiceBus Notification-Format nagłówka, jak w przypadku bezpośredniego wysyłania, i zmodyfikuj treść komunikatu zgodnie z potrzebami. Opcjonalnie określ wyrażenie tagu przy użyciu nagłówka ServiceBusNotification-Tags . Aby uzyskać więcej informacji na temat tworzenia wysyłki do odbiorców, zobacz Wysyłanie natywnego powiadomienia APNS.

Aby utworzyć wysyłkę do odbiorców przy użyciu pakietu SDK, użyj następującej instrukcji:

var outcome = await notificationHubClient.SendNotificationAsync(new BrowserNotification(payload, tagExpression);

Tworzenie wysyłek debugowania/testowania

Tworzenie komunikatów debugowania odbywa się w portalu Azure i wymaga zarejestrowania oraz instalacji.

Po utworzeniu rejestracji dla urządzeń wykonaj następujące kroki, aby utworzyć powiadomienie dotyczące wysyłania debugowania:

  1. W portalu Azure otwórz blok Test Send w centrum powiadomień.

    Zrzut ekranu przedstawiający blok Wysyłanie testowe w centrum powiadomień na potrzeby wysyłania powiadomienia testowego/debugowania.

  2. W polu Platforma wybierz pozycję Przeglądarka.

  3. Określ Wyślij do wyrażenia tagu.

  4. Zmodyfikuj ładunek do żądanego komunikatu.

  5. Wybierz Wyślij.

Dalsze kroki