Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Rozšíření obsahu oznámení představená v iOSu 10 umožňují vytvářet vlastní uživatelská rozhraní pro oznámení. Od iOSu 12 můžou uživatelská rozhraní oznámení obsahovat interaktivní prvky, jako jsou tlačítka a posuvníky.
Soubor s příponou obsahu oznámení Info.plist
V ukázkové aplikaci obsahuje soubor Info.plist v projektu RedGreenNotificationsContentExtension následující konfiguraci:
<!-- ... -->
<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>
<!-- ... -->
Všimněte si následujících funkcí:
- Pole
UNNotificationExtensionCategoryurčuje typ kategorií oznámení, které rozšíření obsahu zpracovává. - Aby bylo možné podporovat interaktivní obsah, rozšíření obsahu oznámení nastaví
UNNotificationExtensionUserInteractionEnabledklíč natrue. - Klíč
UNNotificationExtensionInitialContentSizeRatiourčuje počáteční poměr výšky a šířky pro rozhraní rozšíření obsahu.
Interaktivní rozhraní
MainInterface.storyboard, který definuje rozhraní pro rozšíření obsahu oznámení, je standardní scénář obsahující jeden kontroler zobrazení. V ukázkové aplikaci je kontroler zobrazení typu NotificationViewControllera obsahuje zobrazení obrázků, tři tlačítka a posuvník. Scénář přidruží tyto ovládací prvky k obslužným rutinám definovaným v NotificationViewController.cs:
Obslužná rutina tlačítka Spustit aplikaci volá metodu
PerformNotificationDefaultActionakce,ExtensionContextkterá spustí aplikaci:partial void HandleLaunchAppButtonTap(UIButton sender) { ExtensionContext.PerformNotificationDefaultAction(); }V aplikaci může centrum
Delegateoznámení uživatele (v ukázkové aplikaciAppDelegate) reagovat na interakci vDidReceiveNotificationResponsemetodě:[Export("userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:")] public void DidReceiveNotificationResponse(UNUserNotificationCenter center, UNNotificationResponse response, System.Action completionHandler) { if (response.IsDefaultAction) { Console.WriteLine("ACTION: Default"); // ...Volání obslužné rutiny
DismissNotificationContentExtensionExtensionContexttlačítka Zavřít oznámení , která zavře oznámení:partial void HandleDismissNotificationButtonTap(UIButton sender) { ExtensionContext.DismissNotificationContentExtension(); }Obslužná rutina tlačítka Odebrat oznámení zavře oznámení a odebere ji z Centra oznámení:
partial void HandleRemoveNotificationButtonTap(UIButton sender) { ExtensionContext.DismissNotificationContentExtension(); UNUserNotificationCenter.Current.RemoveDeliveredNotifications(new string[] { notification.Request.Identifier }); }Metoda, která zpracovává změny hodnot na posuvníku, aktualizuje alfa obrázku zobrazeného v rozhraní oznámení:
partial void HandleSliderValueChanged(UISlider sender) { Xamagon.Alpha = sender.Value; }