Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln beskriver hur du skapar push-meddelanden i din iOS-app med hjälp av Azure Communication Services Chat SDK.
Push-meddelanden varnar användare om inkommande meddelanden i en chatttråd när mobilappen inte körs i förgrunden. Azure Communication Services stöder två versioner av push-meddelanden:
Grundläggande version: Ett märkesnummer visas på appens ikon, enheten spelar upp ett meddelandeljud och en popup-aviseringsbanderoll visas.
              
            Avancerad version: Förutom de funktioner som stöds i den grundläggande versionen kan du anpassa rubriken och meddelandeförhandsgranskningen i aviseringsbanderollen.
              
            
I den här kursen får du:
- Konfigurera ett APN-certifikat (Apple Push Notification Service).
 - Konfigurera Xcode för push-meddelanden.
 - Implementera en grundläggande eller avancerad version av push-meddelanden.
 - Testa meddelandena i din app.
 - Konfigurera automatisk förnyelse av registrering för push-meddelanden.
 
Ladda ned kod
Ladda ned exempelkoden på GitHub Azure Samples Lägg till chatt i din app.
Förutsättningar
Slutför de nödvändiga stegen i artikeln Lägg till chatt i din app .
Skapa en Azure-meddelandehubb i samma prenumeration som din Communication Services-resurs och länka sedan meddelandehubben till din Communication Services-resurs. Se Etablering av meddelandehubb.
Skapa ett .p12 APN-certifikat och ange det i meddelandehubben
Om du inte är en intern Microsoft-kund utför du stegen i följande procedur för att skapa ett APN-certifikat (Apple Push Notification Service).
Om du är en intern Microsoft-kund skickar du ett ärende och anger paket-ID:t för din app för att hämta ett .p12 certifikat. Hoppa sedan till det sista steget i följande procedur.
Logga in på Apple Developer Portal.
Gå till Certifikat, Identifierare och profiler>Identifierare>App-ID:n och välj sedan app-ID:t som är associerat med din app.
              
            På sidan för ditt app-ID väljer du Funktioner>Push-meddelanden och sedan Spara.
              
            I dialogrutan Ändra appfunktioner som visas väljer du Bekräfta.
              
            På sidan för ditt app-ID väljer du FunktionerKonfigurera push-meddelanden>>och väljer sedan något av följande alternativ:
- Om du vill testa push-meddelanden när du utvecklar en iOS-app väljer du knappen Skapa certifikat under SSL-certifikat för utveckling.
 - Om du vill skicka push-meddelanden i produktion väljer du knappen Skapa certifikat under Produktions-SSL-certifikat.
 
              
            Området Skapa ett nytt certifikat visas på sidan Certifikat, Identifierare och profiler .
              
            I det här området laddar du upp en begäran om certifikatsignering (CSR):
På en ny webbläsarflik följer du den här Apple-hjälpsidan för att skapa en CSR och spara filen som App name.cer. Instruktionerna omfattar att använda certifikatassistenten för att begära ett certifikat och fylla i certifikatinformationen.
              
            
              
            Dra filen .cer till området Välj fil . Välj sedan Fortsätt i det övre högra hörnet.
              
            
Välj Hämta.
              
            Spara filen lokalt i
.p12format.
              
            Öppna filen
.cersom du laddade ned. I Nyckelringsåtkomst väljer du ditt certifikat, högerklickar på det och exporterar sedan certifikatet i.p12format.Gå till meddelandehubben. Under Inställningar väljer du Apple (APNS). Fyll sedan i certifikatinformationen:
- För Autentiseringsläge väljer du Certifikat.
 - För Ladda upp certifikat laddar du upp 
.p12filen som du skapade. - För Programläge väljer du läget baserat på dina behov.
 
När du har angett all information väljer du Spara.
              
            
Konfigurera Xcode
I Xcode går du till Signering och funktioner.
Lägg till en funktion genom att välja + Kapacitet och välj sedan Push-meddelanden.
Lägg till ytterligare en funktion genom att välja + Kapacitet och välj sedan Bakgrundslägen.
Under Bakgrundslägen väljer du Fjärrmeddelanden.
              
            För Pod Target – AzureCore anger du Kräv endast apptilläggssäkert API som Nej.
Implementera push-meddelanden
Grundläggande version
Om du vill implementera en grundläggande version av push-meddelanden måste du registrera dig för fjärrmeddelanden med API:er. Den relaterade implementationen finns i AppDelegate.swiftGitHub Azure Samples App delegate Swift code.
Avancerad version
Om du vill implementera en avancerad version av push-meddelanden måste du inkludera följande objekt i din app. Anledningen är att kryptering av kundinnehåll (till exempel chattmeddelandeinnehåll och avsändarens visningsnamn) i nyttolaster för push-meddelanden kräver vissa lösningar.
Datalagring för krypteringsnycklar
Skapa beständig datalagring på iOS-enheter. Den här datalagringen måste dela data mellan huvudappen och apptilläggen.
I exempelkoden för den här självstudien väljer du App Groups som datalagring enligt följande:
Lägg till funktionen Appgrupper i appens mål (huvudappen och apptilläggen) genom att följa stegen i Apple-artikeln Lägga till funktioner i din app.
Konfigurera appgrupper genom att följa stegen i Apple-artikeln Konfigurera appgrupper. Kontrollera att huvudappen och apptilläggen har samma containernamn.
Meddelandetjänsttillägg
Implementera notification service-tillägget som medföljer huvudappen. Det här apptillägget dekrypterar nyttolasten för push-meddelanden när enheten tar emot den.
Se Lägga till ett tjänstapptillägg i projektet i Apple-dokumentationen och följ stegen.
Se Implementera tilläggets hanteringsmetoder i Apple-dokumentationen.
Apple tillhandahåller standardkoden för att dekryptera data, och du kan följa den övergripande strukturen för den här självstudien. Men eftersom du använder Chat SDK för dekryptering måste du ersätta den del som börjar från // Try to decode the encrypted message data med anpassad logik.
Den relaterade implementeringen finns i NotificationService.swift GitHub Azure Samples Notification Service för Swift.
Implementering av PushNotificationKeyStorage-protokollet
Protokollet PushNotificationKeyStorage krävs för den avancerade versionen av push-meddelanden. Du kan använda standardklassen AppGroupPushNotificationKeyStorage som finns i Chat SDK. Om du inte använder appgrupper som nyckellagring, eller om du vill anpassa nyckellagringsmetoder, skapar du en egen klass som överensstämmer PushNotificationKeyStorage med protokollet.
              PushNotificationKeyStorage definierar två metoder:
onPersistKey(encryptionKey:expiryTime): Den här metoden bevarar krypteringsnyckeln i lagringen av användarens iOS-enhet. Chat SDK anger 45 minuter som förfallotid för krypteringsnyckeln. Om du vill att push-meddelanden ska gälla i mer än 45 minuter måste du schemalägga ettchatClient.startPushNotifications(deviceToken:)samtal oftare (till exempel var 15:e minut) så att en ny krypteringsnyckel kan registreras innan den gamla nyckeln upphör att gälla.onRetrieveKeys() -> [String]: Den här metoden hämtar de giltiga nycklar som lagrades tidigare. Du har flexibiliteten att tillhandahålla anpassning baserat på den datalagring som du valde tidigare.
I protokolltillägget tillhandahåller Chat SDK en implementering av den decryptPayload(notification:) -> PushNotificationEvent metod som du kan använda. För den relaterade implementeringen i NotificationService.swiftGitHub Azure Samples, se Notification Service för Swift.
Testa dina meddelanden
Skapa en chatttråd med användare A och användare B.
Ladda ned GitHub-lagringsplatsen för exempelappar.
Placera användare A:s
<ACCESS_TOKEN>och<ACS_RESOURCE_ENDPOINT>värden i AppSettings.plist.Ange Aktivera Bitcode till Nej för två poddmål: AzureCommunicationChat och Trouter.
Anslut iOS-enheten till din Mac och kör programmet. När du uppmanas att auktorisera push-meddelanden på enheten väljer du Tillåt.
Som användare B skickar du ett chattmeddelande. Bekräfta att användare A tar emot ett push-meddelande på iOS-enheten.
Implementera förnyelse av registrering
För att Microsoft ska kunna tillhandahålla en säker chatttjänst förblir registreringen för push-meddelanden på iOS-enheter giltig i endast 45 minuter. För att upprätthålla funktionen för push-meddelanden måste du implementera registreringsförnyelse i klientappen.
Den här artikeln beskriver två lösningar som är anpassade till Apples officiella riktlinjer. Vi rekommenderar att du implementerar båda lösningarna tillsammans för att öka deras effektivitet.
Kommentar
Många faktorer kan påverka effektiviteten i någon av lösningarna. Enhetens batteristatus, nätverksförhållanden och iOS-specifika begränsningar kan till exempel påverka appens möjlighet att köra bakgrundsaktiviteter. Mer information finns i videon Framsteg i appbakgrundskörning och artikeln Skicka bakgrundsuppdateringar till din app från Apple.
Lösning 1: Bakgrundsuppgifter
Bakgrundsaktiviteter är ett sätt att utföra aktiviteter även när appen inte är i förgrunden. När du implementerar en bakgrundsaktivitet kan din app begära mer tid för att slutföra en viss uppgift, till exempel förnya registreringen av push-meddelanden.
I följande avsnitt beskrivs hur du kan använda bakgrundsaktiviteter för registreringsförnyelse.
Konfigurera automatisk uppdatering av användaråtkomsttoken
För att säkerställa oavbruten åtkomst till chatttjänster måste du underhålla giltiga användaråtkomsttoken. Token har vanligtvis en standard giltighetsperiod på 24 timmar, varefter de upphör att gälla och kräver förnyelse. Genom att implementera en mekanism för automatisk uppdatering kan du garantera att token är giltig när chattprogrammet aktiveras.
Chat SDK effektiviserar tokenhanteringen genom att automatisera uppdateringsprocessen när en anpassad uppdatering av åtkomsttoken implementeras. Utför följande steg för att konfigurera chattprogrammet så att det stöder automatisk tokenuppdatering:
För att säkerställa att chattprogrammet upprätthåller kontinuerlig och säker användaråtkomst måste du implementera en tjänstnivå som är dedikerad för utfärdande av token. Ett alternativ är att använda Azure Functions för detta ändamål.
Information om hur du skapar en Azure-funktion finns i artikeln Skapa en betrodd användaråtkomsttjänst med hjälp av Azure Functions . Den beskriver hur du konfigurerar din funktionsapp och distribuerar nödvändig kod för utfärdande av token.
När du har konfigurerat din Azure-funktion:
Hämta url:en för token utfärdaren från Azure Portal. Chattprogrammet använder den här URL:en för att begära nya token.
Skapa och integrera tokenuppdateringen i chattprogrammet. Den här komponenten begär nya token och initierar chattklienten för sömlös automatisk tokenförnyelse.
Exempelkod för tokenuppdateringen och dess integrering med chattklienten finns på GitHub-lagringsplatsen för exempelappar.
Aktivera och schemalägga bakgrundsaktiviteter
Om du vill aktivera och schemalägga bakgrundsaktiviteter i din iOS-app följer du stegen i Apple-artikeln Använda bakgrundsuppgifter för att uppdatera din app.
Praktisk implementering finns i GitHub Azure-exempel lägg till chatt i din app. Det angivna exemplet använder BGProcessingTask konfigurerat för att initiera tidigast en minut in i framtiden, vilket visar hur du effektivt hämtar data i bakgrunden.
Lösning 2: Fjärrmeddelande
Ett fjärrmeddelande är mekanismen för iOS-program att köra bakgrundsaktiviteter som svar på externa utlösare. Du kan använda fjärrmeddelanden för uppgifter som att uppdatera registreringar utan användarintervention.
Så här använder du fjärrmeddelanden för att köra en bakgrundsaktivitet:
Implementera en utlösande mekanism.
Du kan till exempel använda en Azure-funktionsapp som utlösarmekanism. Det gör att du kan köra kod som svar på olika utlösare, inklusive HTTP-begäranden, så det är användbart för att initiera tysta push-meddelanden. Kom ihåg att implementera enhetsregistret på din sida så att funktionsappen vet var aviseringarna ska levereras.
Konfigurera en meddelandehubb.
Azure Notification Hubs-tjänsten tillhandahåller en skalbar infrastruktur för push-meddelanden som kan skicka meddelanden till valfri plattform (iOS, Android, Windows och så vidare) från valfri serverdel (moln eller lokalt).
Du kan återanvända samma meddelandehubb som du använder för vanliga push-meddelanden. Om du vill konfigurera en ny kan du läsa dokumentationen för Azure Notification Hubs.
Konfigurera Azure-funktionsappen för regelbundna meddelanden.
Justera funktionsappen för att regelbundet skicka fjärrmeddelanden via meddelandehubben. Dessa meddelanden vidarebefordras till APN:er och dirigeras till den angivna enheten. Mer information finns i Notification Hubs-utdatabindning för Azure Functions.
Hantera meddelanden i din app.
I din iOS-app implementerar du programinstansmetoden för att utlösa en automatisk uppdatering av registreringen när du får ett tyst meddelande.
Mer information finns i Apple-artikeln Konfigurera en fjärrmeddelandeserver.