Leküldéses értesítések hozzáadása a Windows-alkalmazáshoz
Áttekintés
Ebben az oktatóanyagban leküldéses értesítéseket ad hozzá a Windows gyors üzembe helyezési projekthez, hogy a rendszer minden rekord beszúrásakor leküldéses értesítést küldjön az eszközre.
Ha nem a letöltött gyorsindítási kiszolgálóprojektet használja, szüksége lesz a leküldéses értesítési bővítménycsomagra. További információ : A .NET háttérkiszolgálóI SDK használata az Azure Mobile Appshez .
Értesítési központ konfigurálása
A Azure App Service Mobile Apps funkciója az Azure Notification Hubs használatával küld leküldéseket, ezért egy értesítési központot fog konfigurálni a mobilalkalmazáshoz.
A Azure Portal nyissa meg az App Servicest, majd válassza ki az alkalmazás háttérrendszerét. A Beállítások területen válassza a Leküldés lehetőséget.
Ha értesítési központ-erőforrást szeretne hozzáadni az alkalmazáshoz, válassza a Csatlakozás lehetőséget. Létrehozhat egy központot, vagy csatlakozhat egy meglévőhöz.
Most már csatlakoztatott egy értesítési központot a Mobile Apps háttérprojektjéhez. Később úgy konfigurálja ezt az értesítési központot, hogy egy platformértesítési rendszerhez (PNS) csatlakozzon az eszközökre való leküldéshez.
Alkalmazás regisztrálása leküldéses értesítésekhez
Be kell küldenie az alkalmazást a Microsoft Store-ba, majd konfigurálnia kell a kiszolgálóprojektet úgy, hogy integrálva legyen a Windows leküldéses értesítési szolgáltatásokkal (WNS) a leküldéses küldéshez.
A Visual Studio Megoldáskezelő kattintson a jobb gombbal az UWP-alkalmazásprojektre, majd kattintson az Áruházbeli>alkalmazás társítása az Áruházhoz... parancsra.
A varázslóban kattintson a Tovább gombra, jelentkezzen be Microsoft-fiókjával, írja be az alkalmazás nevét az Új alkalmazás lefoglalása mezőbe, majd kattintson a Foglalás gombra.
Az alkalmazásregisztráció sikeres létrehozása után válassza ki az új alkalmazás nevét, kattintson a Tovább gombra, majd a Társítás gombra. Ezzel hozzáadja a szükséges Microsoft Store regisztrációs adatokat az alkalmazásjegyzékhez.
Lépjen az alkalmazásregisztrációs portálra , és jelentkezzen be Microsoft-fiókjával. Kattintson az előző lépésben társított Windows Áruházbeli alkalmazásra.
A regisztrációs oldalon jegyezze fel az alkalmazás titkos kódjai és a csomag biztonsági azonosítója alatti értéket, amelyet a következő lépésben a mobilalkalmazás háttérrendszerének konfigurálásához fog használni.
Fontos
A titkos ügyfélkulcs és a csomag biztonsági azonosítója fontos biztonsági hitelesítő adatok. Ezeket az értékeket ne ossza meg senkivel, és ne terjessze az alkalmazással. Az alkalmazásazonosítót a titkos kóddal együtt használjuk a Microsoft-fiók hitelesítésének konfigurálásához.
Az App Center útmutatást is tartalmaz az UWP-alkalmazások leküldéses értesítésekhez való konfigurálásához.
A háttérrendszer konfigurálása leküldéses értesítések küldésére
A Azure Portal válassza az Összes >App Servicestallózásalehetőséget. Ezután válassza ki a Mobile Apps háttérrendszerét. A Beállítások területen válassza a App Service Leküldés lehetőséget. Ezután válassza ki az értesítési központ nevét.
Nyissa meg a Windowst (WNS). Ezután adja meg a biztonsági kulcsot (titkos ügyfélkulcsot) és a csomag biztonsági azonosítóját, amelyet a Live Services helyről szerzett be. Ezután válassza a Mentés lehetőséget.
A háttérrendszer most már úgy van konfigurálva, hogy a WNS használatával küldjön leküldéses értesítéseket.
A kiszolgáló frissítése leküldéses értesítések küldéséhez
Használja az alábbi eljárást, amely megfelel a háttérprojekt típusának – a .NET-háttérrendszernek vagy Node.js háttérrendszernek.
.NET-háttérprojekt
A Visual Studióban kattintson a jobb gombbal a kiszolgálóprojektre, és válassza a Manage NuGet Packages (NuGet-csomagok kezelése) parancsot, keresse meg a Microsoft.Azure.NotificationHubs elemet, majd kattintson a Telepítés parancsra. Ezzel telepíti a Notification Hubs ügyféloldali kódtárát.
Bontsa ki a Vezérlők elemet, nyissa meg a TodoItemController.cs fájlt, és adja hozzá a következő using utasításokat:
using System.Collections.Generic; using Microsoft.Azure.NotificationHubs; using Microsoft.Azure.Mobile.Server.Config;
A PostTodoItem metódusban adja hozzá a következő kódot az InsertAsync hívása után:
// Get the settings for the server project. HttpConfiguration config = this.Configuration; MobileAppSettingsDictionary settings = this.Configuration.GetMobileAppSettingsProvider().GetMobileAppSettings(); // Get the Notification Hubs credentials for the Mobile App. string notificationHubName = settings.NotificationHubName; string notificationHubConnection = settings .Connections[MobileAppSettingsKeys.NotificationHubConnectionString].ConnectionString; // Create the notification hub client. NotificationHubClient hub = NotificationHubClient .CreateClientFromConnectionString(notificationHubConnection, notificationHubName); // Define a WNS payload var windowsToastPayload = @"<toast><visual><binding template=""ToastText01""><text id=""1"">" + item.Text + @"</text></binding></visual></toast>"; try { // Send the push notification. var result = await hub.SendWindowsNativeNotificationAsync(windowsToastPayload); // Write the success result to the logs. config.Services.GetTraceWriter().Info(result.State.ToString()); } catch (System.Exception ex) { // Write the failure result to the logs. config.Services.GetTraceWriter() .Error(ex.Message, null, "Push.SendAsync Error"); }
Ez a kód arra utasítja az értesítési központot, hogy küldjön leküldéses értesítést egy új elem beszúrása után.
Tegye közzé újra a kiszolgálóprojektet.
Node.js háttérprojekt
Állítsa be a háttérprojektet.
Cserélje le a todoitem.js fájlban lévő kódot a következőre:
var azureMobileApps = require('azure-mobile-apps'), promises = require('azure-mobile-apps/src/utilities/promises'), logger = require('azure-mobile-apps/src/logger'); var table = azureMobileApps.table(); table.insert(function (context) { // For more information about the Notification Hubs JavaScript SDK, // see https://aka.ms/nodejshubs logger.info('Running TodoItem.insert'); // Define the WNS payload that contains the new item Text. var payload = "<toast><visual><binding template=\ToastText01\><text id=\"1\">" + context.item.text + "</text></binding></visual></toast>"; // Execute the insert. The insert returns the results as a Promise, // Do the push as a post-execute action within the promise flow. return context.execute() .then(function (results) { // Only do the push if configured if (context.push) { // Send a WNS native toast notification. context.push.wns.sendToast(null, payload, function (error) { if (error) { logger.error('Error while sending push notification: ', error); } else { logger.info('Push notification sent successfully!'); } }); } // Don't forget to return the results from the context.execute() return results; }) .catch(function (error) { logger.error('Error while running context.execute: ', error); }); }); module.exports = table;
Ez egy WNS bejelentési értesítést küld, amely tartalmazza az item.text szöveget egy új teendőelem beszúrásakor.
Amikor a helyi számítógépen szerkeszti a fájlt, tegye közzé újra a kiszolgálóprojektet.
Leküldéses értesítések hozzáadása az alkalmazáshoz
Ezután az alkalmazásnak regisztrálnia kell a leküldéses értesítésekre az indításkor. Ha már engedélyezte a hitelesítést, győződjön meg arról, hogy a felhasználó bejelentkezik, mielőtt megpróbálna leküldéses értesítésekre regisztrálni.
Nyissa meg az App.xaml.cs projektfájlt, és adja hozzá a következő
using
utasításokat:using System.Threading.Tasks; using Windows.Networking.PushNotifications;
Ugyanebben a fájlban adja hozzá a következő InitNotificationsAsync metódusdefiníciót az alkalmazásosztályhoz :
private async Task InitNotificationsAsync() { // Get a channel URI from WNS. var channel = await PushNotificationChannelManager .CreatePushNotificationChannelForApplicationAsync(); // Register the channel URI with Notification Hubs. await App.MobileService.GetPush().RegisterAsync(channel.Uri); }
Ez a kód lekéri az alkalmazás ChannelURI-azonosítóját a WNS-ből, majd regisztrálja a ChannelURI-t a App Service Mobile Appban.
Az App.xaml.csonLaunched eseménykezelőjének tetején adja hozzá az aszinkron módosítót a metódusdefinícióhoz, és adja hozzá a következő hívást az új InitNotificationsAsync metódushoz, az alábbi példához hasonlóan:
protected async override void OnLaunched(LaunchActivatedEventArgs e) { await InitNotificationsAsync(); // ... }
Ez garantálja, hogy a rövid élettartamú ChannelURI az alkalmazás minden indításakor regisztrálva lesz.
Építse újra az UWP-alkalmazásprojektet. Az alkalmazás készen áll bejelentési értesítéseket fogadni.
Leküldéses értesítések tesztelése az alkalmazásban
Kattintson a jobb gombbal a Windows Áruházbeli projektre, kattintson a Beállítás kezdőprojektként parancsra, majd nyomja le az F5 billentyűt a Windows Áruházbeli alkalmazás futtatásához.
Az alkalmazás elindítása után az eszköz regisztrálva lesz a leküldéses értesítésekhez.
Állítsa le a Windows Áruházbeli alkalmazást, és ismételje meg az előző lépést a Windows Phone-telefon Store-alkalmazással.
Ezen a ponton mindkét eszköz regisztrálva van a leküldéses értesítések fogadásához.
Futtassa újra a Windows Áruházbeli alkalmazást, írja be a szöveget a Teendőlista beszúrása mezőbe, majd kattintson a Mentés gombra.
Vegye figyelembe, hogy a beszúrás befejezése után a Windows Áruház és a Windows Phone-telefon alkalmazások is leküldéses értesítést kapnak a WNS-től. Az értesítés akkor is megjelenik Windows Phone-telefon, ha az alkalmazás nem fut.
Következő lépések
További információ a leküldéses értesítésekről:
- Felügyelt ügyfél használata az Azure Mobile Appshez A sablonok rugalmasan küldhetnek platformfüggetlen leküldéseket és honosított leküldéseket. Megtudhatja, hogyan regisztrálhat sablonokat.
- Leküldéses értesítések problémáinak diagnosztizálása Számos oka lehet annak, ha az értesítések el lesznek vetve, vagy nem kerülnek az eszközökre. Ez a témakör bemutatja, hogyan elemezheti és állapíthatja meg a leküldéses értesítési hibák kiváltó okát.
Folytassa a következő oktatóanyagok egyikével:
- Hitelesítés hozzáadása alkalmazáshoz Ismerje meg, hogyan hitelesítheti az alkalmazás felhasználóit egy identitásszolgáltatóval.
- Offline szinkronizálás engedélyezése az alkalmazáshoz Megtudhatja, hogyan adhat offline támogatást az alkalmazáshoz mobilalkalmazás-háttérrendszer használatával. Az offline szinkronizálással a végfelhasználók akkor is használhatják a mobilalkalmazásokat – az adatok megtekintését, hozzáadását vagy módosítását –, ha nincs hálózati kapcsolat.