Alternatywne ikony aplikacji na platformie .NET dla systemów iOS i tvOS
Apple ma kilka interfejsów API UIApplication, które umożliwiają aplikacji zarządzanie jej ikoną.
-
UIApplication.SupportsAlternateIcons — jeśli
true
aplikacja ma alternatywny zestaw ikon. -
UIApplication.AlternateIconName — zwraca nazwę aktualnie wybranej ikony alternatywnej lub
null
, jeśli używasz ikony podstawowej. - UIApplication.SetAlternateIconName — użyj tej metody, aby przełączyć ikonę aplikacji na daną ikonę alternatywną.
-
UNUserNotificationCenter.Current.SetBadgeCount
— ustawia liczbę powiadomień na ikonie aplikacji w Springboardzie (nieaktualne w systemach iOS 16+ i tvOS 16+).
Dodawanie alternatywnych ikon do projektu platformy .NET
Aby umożliwić aplikacji przełączenie się na ikonę alternatywną, nowy folder .appiconset
z kolekcją obrazów ikon musi zostać uwzględniony w wykazie zasobów projektu:
Otwórz katalog zasobów projektu (Assets.xcassets) w programie Finder:
Utwórz kopię istniejącego folderu
AppIcon.appiconset
:Zastąp każdą ikonę w skopiowanych folderach nową ikoną pasującego rozmiaru:
Dodaj ikonę aplikacji do pliku projektu przy użyciu właściwości
AppIcon
:<PropertyGroup> <AppIcon>AppIcon</AppIcon> </PropertyGroup>
Notatka
Istniejące projekty zazwyczaj określają ikonę aplikacji przy użyciu klucza
XSAppIconAssets
w plikuInfo.plist
— nadal można go użyć, ale zaleca się przełączenie do właściwościAppIcon
w pliku projektu (która jest również prostsza, ponieważ jego wartość jest nazwą ikony, a nie ścieżką do zasobu).Dodaj alternatywne ikony do pliku projektu przy użyciu grupy elementów
AlternativeAppIcons
:<ItemGroup> <AlternativeAppIcon Include="AlternativeAppIcons" /> </ItemGroup>
Zarządzanie ikoną aplikacji
Za pomocą obrazów ikon zawartych w projekcie platformy .NET deweloper może kontrolować ikonę aplikacji na następujące sposoby.
Właściwość SupportsAlternateIcons klasy UIApplication umożliwia deweloperowi sprawdzenie, czy aplikacja obsługuje ikony alternatywne. Na przykład:
// Can the app select a different icon?
primaryIconButton.Enabled = UIApplication.SharedApplication.SupportsAlternateIcons;
alternateIconButton.Enabled = UIApplication.SharedApplication.SupportsAlternateIcons;
Właściwość
// Set the badge number to 1
var badgeCount = 1;
UNUserNotificationCenter.Current.SetBadgeCount (badgeCount, (error) => {
Console.WriteLine ($"Set badge count to {badgeCount}: {(error is null ? "successfully" : error.ToString ())}");
}
Uwaga
UNUserNotificationCenter.SetBadgeCount
wymaga autoryzacji od użytkownika w systemie iOS, który można uzyskać przez wywołanie UNUserNotificationCenter.Current.RequestAuthorization
przed ustawieniem liczby znaczek.
Właściwość
// Get the name of the currently selected alternate
// icon set
var name = UIApplication.SharedApplication.AlternateIconName;
if (name != null ) {
// Do something with the name
}
Właściwość SetAlternameIconName klasy UIApplication umożliwia deweloperowi zmianę ikony aplikacji. Podaj nazwę ikony, aby wybrać ikonę lub null
, aby wrócić do ikony głównej. Na przykład:
void UsePrimaryIcon (Foundation.NSObject sender)
{
UIApplication.SharedApplication.SetAlternateIconName (null, (error) => {
Console.WriteLine ($"Set Primary Icon: {(error is null ? "successfully" : error.ToString ())}");
});
}
void UseAlternateIcon (Foundation.NSObject sender)
{
UIApplication.SharedApplication.SetAlternateIconName ("AlternateAppIcons", (error) => {
Console.WriteLine ($"Set Alternate Icon: {(error is null ? "successfully" : error.ToString ())}");
});
}
Po uruchomieniu aplikacji i wybraniu przez użytkownika alternatywnej ikony zostanie wyświetlony alert podobny do następującego:
Jeśli użytkownik przełączy się z powrotem do ikony podstawowej, zostanie wyświetlony alert podobny do następującego: