Alternatieve app-pictogrammen in .NET voor iOS en tvOS
Apple heeft verschillende UIApplication API's waarmee een app het pictogram kan beheren:
-
UIApplication.SupportsAlternateIcons - Als
true
de app een alternatieve set pictogrammen heeft. -
UIApplication.AlternateIconName - Retourneert de naam van het alternatieve pictogram dat momenteel is geselecteerd of
null
als u het primaire pictogram gebruikt. - UIApplication.SetAlternateIconName - Gebruik deze methode om het pictogram van de app over te schakelen naar het opgegeven alternatieve pictogram.
-
UNUserNotificationCenter.Current.SetBadgeCount
- Hiermee stelt u het aantal badges van het app-pictogram in het Springboard in (afgeschaft in iOS 16+ en tvOS 16+).
Alternatieve pictogrammen toevoegen aan een .NET-project
Als u wilt toestaan dat een app overschakelt naar een alternatief pictogram, moet een nieuwe .appiconset
map met een verzameling pictogramafbeeldingen worden opgenomen in de assetcatalogus van het project:
Open de assetcatalogus van het project (Assets.xcassets) in Finder:
Maak een kopie van de bestaande
AppIcon.appiconset
map:Vervang elk pictogram in de gekopieerde map door het nieuwe pictogram van de overeenkomende grootte:
Voeg het app-pictogram toe aan het projectbestand met behulp van de eigenschap
AppIcon
:<PropertyGroup> <AppIcon>AppIcon</AppIcon> </PropertyGroup>
Notitie
Bestaande projecten specificeren doorgaans het app-pictogram met behulp van de
XSAppIconAssets
-sleutel in hetInfo.plist
-bestand. Dit kan nog steeds worden gebruikt, maar het is raadzaam om over te schakelen naar de eigenschapAppIcon
in het projectbestand (wat ook simplier is, omdat de waarde de naam van het pictogram is, niet het pad naar de resource).Voeg de alternatieve pictogrammen toe aan het projectbestand met behulp van de
AlternativeAppIcons
itemgroep:<ItemGroup> <AlternativeAppIcon Include="AlternativeAppIcons" /> </ItemGroup>
Het pictogram van de app beheren
Met de pictogramafbeeldingen die zijn opgenomen in het .NET-project, kan de ontwikkelaar de volgende manieren gebruiken om het pictogram van de app te beheren.
Met de eigenschap SupportsAlternateIcons van de UIApplication-klasse kan de ontwikkelaar zien of een app alternatieve pictogrammen ondersteunt. Bijvoorbeeld:
// Can the app select a different icon?
primaryIconButton.Enabled = UIApplication.SharedApplication.SupportsAlternateIcons;
alternateIconButton.Enabled = UIApplication.SharedApplication.SupportsAlternateIcons;
Met de eigenschap ApplicationIconBadgeNumber van de UIApplication klasse kan de ontwikkelaar het huidige badgenummer van het app-pictogram in het Springboard ophalen of instellen. De standaardwaarde is nul (0). Bijvoorbeeld:
// 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 ())}");
}
Notitie
UNUserNotificationCenter.SetBadgeCount
vereist autorisatie van de gebruiker op iOS, die kan worden verkregen door UNUserNotificationCenter.Current.RequestAuthorization
aan te roepen voordat u het aantal badges instelt.
Met de eigenschap AlternateIconName van de UIApplication-klasse kan de ontwikkelaar de naam van het geselecteerde pictogram voor alternatieve apps ophalen of wordt null
geretourneerd als de app gebruikmaakt van het primaire pictogram. Bijvoorbeeld:
// Get the name of the currently selected alternate
// icon set
var name = UIApplication.SharedApplication.AlternateIconName;
if (name != null ) {
// Do something with the name
}
Met de eigenschap SetAlternameIconName van de klasse UIApplication kan de ontwikkelaar het app-pictogram wijzigen. Geef de naam van het pictogram door om te selecteren of null
om terug te keren naar het primaire pictogram. Bijvoorbeeld:
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 ())}");
});
}
Wanneer de app wordt uitgevoerd en de gebruiker een alternatief pictogram selecteert, wordt een waarschuwing zoals hieronder weergegeven:
Als de gebruiker terugschakelt naar het primaire pictogram, wordt een waarschuwing zoals hieronder weergegeven: