Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Benachrichtigungsinhaltserweiterungen, eingeführt in iOS 10, ermöglichen das Erstellen benutzerdefinierter Benutzeroberflächen für Benachrichtigungen. Ab iOS 12 können Benachrichtigungsbenutzeroberflächen interaktive Elemente wie Schaltflächen und Schieberegler enthalten.
Benachrichtigungsinhaltserweiterung Info.plist Datei
In der Beispiel-App enthält die Datei "Info.plist " im Projekt "RedGreenNotificationsContentExtension " die folgende Konfiguration:
<!-- ... -->
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>UNNotificationExtensionCategory</key>
<array>
<string>red-category</string>
<string>green-category</string>
</array>
<key>UNNotificationExtensionUserInteractionEnabled</key>
<true/>
<key>UNNotificationExtensionDefaultContentHidden</key>
<true/>
<key>UNNotificationExtensionInitialContentSizeRatio</key>
<real>0.6</real>
</dict>
<key>NSExtensionMainStoryboard</key>
<string>MainInterface</string>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.usernotifications.content-extension</string>
<key></key>
<true/>
</dict>
<!-- ... -->
Beachten Sie die folgenden Funktionen:
- Das
UNNotificationExtensionCategoryArray gibt den Typ der Benachrichtigungskategorien an, die die Inhaltserweiterung behandelt. - Um interaktive Inhalte zu unterstützen, legt die Benachrichtigungsinhaltserweiterung den
UNNotificationExtensionUserInteractionEnabledSchlüssel auftrue. - Der
UNNotificationExtensionInitialContentSizeRatioSchlüssel gibt das anfängliche Höhen-/Breitenverhältnis für die Schnittstelle der Inhaltserweiterung an.
Interaktive Benutzeroberfläche
MainInterface.storyboard, das die Schnittstelle für eine Benachrichtigungsinhaltserweiterung definiert, ist ein Standard-Storyboard, das einen einzelnen Ansichtscontroller enthält. In der Beispiel-App ist der Ansichtscontroller vom Typ NotificationViewControllerund enthält eine Bildansicht, drei Schaltflächen und einen Schieberegler. Das Storyboard ordnet diese Steuerelemente den in NotificationViewController.cs definierten Handlern zu:
Der Schaltflächenhandler "App starten" ruft die
PerformNotificationDefaultActionAktionsmethode aufExtensionContext, für die die App gestartet wird:partial void HandleLaunchAppButtonTap(UIButton sender) { ExtensionContext.PerformNotificationDefaultAction(); }In der App kann das Benutzerbenachrichtigungscenter
Delegate(in der Beispiel-App)AppDelegateauf die Interaktion in derDidReceiveNotificationResponseMethode reagieren:[Export("userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:")] public void DidReceiveNotificationResponse(UNUserNotificationCenter center, UNNotificationResponse response, System.Action completionHandler) { if (response.IsDefaultAction) { Console.WriteLine("ACTION: Default"); // ...Der Schaltflächenhandler "Benachrichtigung schließen" wird aufgerufen
DismissNotificationContentExtensionExtensionContext, bei dem die Benachrichtigung geschlossen wird:partial void HandleDismissNotificationButtonTap(UIButton sender) { ExtensionContext.DismissNotificationContentExtension(); }Der Schaltflächenhandler "Benachrichtigung entfernen" schließt die Benachrichtigung und entfernt sie aus dem Benachrichtigungscenter:
partial void HandleRemoveNotificationButtonTap(UIButton sender) { ExtensionContext.DismissNotificationContentExtension(); UNUserNotificationCenter.Current.RemoveDeliveredNotifications(new string[] { notification.Request.Identifier }); }Die Methode, mit der Wertänderungen auf dem Schieberegler behandelt werden, aktualisiert das Alpha des Bilds, das auf der Benutzeroberfläche der Benachrichtigung angezeigt wird:
partial void HandleSliderValueChanged(UISlider sender) { Xamagon.Alpha = sender.Value; }