Delen via


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+).

Een voorbeeldwaarschuwing wanneer een app het pictogram wijzigt

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:

  1. Open de assetcatalogus van het project (Assets.xcassets) in Finder:

    De assetcatalogus openen

  2. Maak een kopie van de bestaande AppIcon.appiconset map:

    kopieer de map appiconset

  3. Vervang elk pictogram in de gekopieerde map door het nieuwe pictogram van de overeenkomende grootte:

    Nieuwe pictogrammen maken

  4. 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 het Info.plist-bestand. Dit kan nog steeds worden gebruikt, maar het is raadzaam om over te schakelen naar de eigenschap AppIcon in het projectbestand (wat ook simplier is, omdat de waarde de naam van het pictogram is, niet het pad naar de resource).

  5. 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:

Een voorbeeldwaarschuwing wanneer een app het pictogram wijzigt

Als de gebruiker terugschakelt naar het primaire pictogram, wordt een waarschuwing zoals hieronder weergegeven:

Een voorbeeldwaarschuwing wanneer een app verandert in het primaire pictogram

Zie ook