Správa oznámení v Xamarin.iOS
V iOSu 12 může operační systém přímý odkaz z Centra oznámení a aplikace Nastavení na obrazovku správy oznámení aplikace. Tato obrazovka by uživatelům měla umožnit, aby se odhlásili a odhlásili z různých typů oznámení, která aplikace odesílá.
Obrazovka správy oznámení
V ukázkové aplikaci definuje uživatelské rozhraní, ManageNotificationsViewController
které umožňuje uživatelům nezávisle povolit a zakázat červená oznámení a zelená oznámení. Jedná se o standardní UIViewController
obsahující typ UISwitch
oznámení. Přepnutí přepínače pro některý typ uložení oznámení ve výchozím nastavení uživatele u daného typu oznámení:
partial void HandleRedNotificationsSwitchValueChange(UISwitch sender)
{
NSUserDefaults.StandardUserDefaults.SetBool(sender.On, RedNotificationsEnabledKey);
}
Poznámka:
Obrazovka správy oznámení také zkontroluje, jestli má uživatel pro aplikaci úplně zakázaná oznámení. Pokud ano, skryje přepínače pro jednotlivé typy oznámení. Chcete-li to provést, obrazovka pro správu oznámení:
- Zavolá
UNUserNotificationCenter.Current.GetNotificationSettingsAsync
a zkontrolujeAuthorizationStatus
vlastnost. - Skryje přepínače jednotlivých typů oznámení, pokud byla oznámení pro aplikaci zcela zakázaná.
- Znovu zkontroluje, jestli byla oznámení při každém přesunutí aplikace do popředí zakázaná, protože uživatel může kdykoli povolit nebo zakázat oznámení v iOSu Nastavení.
Třída ukázkové aplikace ViewController
, která odesílá oznámení, před odesláním místního oznámení zkontrolujte předvolby uživatele, aby se zajistilo, že oznámení je typu, který chce uživatel skutečně přijmout:
partial void HandleTapRedNotificationButton(UIButton sender)
{
bool redEnabled = NSUserDefaults.StandardUserDefaults.BoolForKey(ManageNotificationsViewController.RedNotificationsEnabledKey);
if (redEnabled)
{
// ...
Přímý odkaz
Přímé odkazy na obrazovku správy oznámení aplikace z Centra oznámení a nastavení oznámení aplikace v aplikaci Nastavení. Aby se to usnadnilo, musí aplikace:
- Naznačte, že je k dispozici obrazovka pro správu oznámení předáním
UNAuthorizationOptions.ProvidesAppNotificationSettings
žádosti o autorizaci oznámení aplikace. - Implementujte metodu
OpenSettings
zIUNUserNotificationCenterDelegate
.
Žádost o autorizaci
Chcete-li indikovat operační systém, že je k dispozici obrazovka pro správu oznámení, měla by aplikace předat UNAuthorizationOptions.ProvidesAppNotificationSettings
možnost (spolu s dalšími možnostmi doručení oznámení, které potřebuje) RequestAuthorization
metodě na kartě UNUserNotificationCenter
.
Například v ukázkové aplikaci AppDelegate
:
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
{
// Request authorization to send notifications
UNUserNotificationCenter center = UNUserNotificationCenter.Current;
var options = UNAuthorizationOptions.ProvidesAppNotificationSettings | UNAuthorizationOptions.Alert | UNAuthorizationOptions.Sound | UNAuthorizationOptions.Provisional;
center.RequestAuthorization(options, (bool success, NSError error) =>
{
// ...
Metoda Open Nastavení
OpenSettings
Metoda, kterou systém volá k přímému propojení na obrazovku správy oznámení aplikace, by měla uživatele přejít přímo na danou obrazovku.
V ukázkové aplikaci provede tato metoda v případě potřebygue ManageNotificationsViewController
:
[Export("userNotificationCenter:openSettingsForNotification:")]
public void OpenSettings(UNUserNotificationCenter center, UNNotification notification)
{
var navigationController = Window.RootViewController as UINavigationController;
if (navigationController != null)
{
var currentViewController = navigationController.VisibleViewController;
if (currentViewController is ViewController)
{
currentViewController.PerformSegue(ManageNotificationsViewController.ShowManageNotificationsSegue, this);
}
}
}